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 theUIActivityViewController
object. If you provided a view controller using theactivityViewController
method, 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
activityViewController
orperformActivity
method 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/