UIActivityViewControllerカスタムUIActivityアイテムを含むアプリを作成して表示します。
UIActivityアイコンをタップすると、下にUIActivityViewControllerスライドし、モーダル ビュー コントローラーが表示されます。ただし、VC を却下すると、UIActivityViewController表示されます。
アクティビティ項目が押されたときにそれを消し、二度と表示されないようにするにはどうすればよいですか?
UIActivityViewControllerカスタムUIActivityアイテムを含むアプリを作成して表示します。
UIActivityアイコンをタップすると、下にUIActivityViewControllerスライドし、モーダル ビュー コントローラーが表示されます。ただし、VC を却下すると、UIActivityViewController表示されます。
アクティビティ項目が押されたときにそれを消し、二度と表示されないようにするにはどうすればよいですか?
You need to call the activityDidFinish: method on the chosen UIActivity.
From the docs for UIActivity activityDidFinish::
Discussion
This method dismisses the sharing interface provided by theUIActivityViewControllerobject. If you provided a view controller using theactivityViewControllermethod, this method dismisses that view controller too.You must call this method after completing the work associated with this object’s service. This is true regardless of whether you used the
activityViewControllerorperformActivitymethod to initiate the service. When calling the method, use the Boolean value to indicate whether the service completed successfully.
アクティビティAが UIActivityVC から選択されたときに、モーダル ビュー コントローラーMを現在のビュー コントローラーCに表示するとします。
Aのメソッドを実装する場合は、モーダル ビュー コントローラーMの却下メソッド -(UIViewController*)activityViewControllerを呼び出す必要があります。[A activityDidFinish]
Aのメソッドを実装する-(void) performActivityと、現在のビュー コントローラーCが を破棄中のため、モーダル ビューを表示することはできませんUIActivityVC。
最終的な解決策は少し難しいと思います。私の基本的なアイデアは、メソッドをサブクラス化UIActivityViewControllerしてオーバーライド-(void) viewDidDisappearすることです。したがって、現在のView Controller Cで好きなことを行うことができます(つまり、独自のモーダルビューを表示したり、他のView Controllerのシーケンスをプッシュしたり).
私はこれをイーサン・フアンによって見つけました
[self presentViewController: activityController animated: YES completion:nil];
activityController.modalPresentationStyle = UIModalPresentationPopover;
UIPopoverPresentationController *popPC = activityController.popoverPresentationController;
popPC.barButtonItem = saveBtn;
popPC.permittedArrowDirections = UIPopoverArrowDirectionAny;
ここでそれについてすべて読んでください:
http://getnotebox.com/developer/uiactivityviewcontroller-ios-8/