我在我的应用程序中创建并呈现UIActivityViewController
自定义UIActivity
项目。
当我点击UIActivity
图标时,UIActivityViewController
向下滑动并显示我的模态视图控制器。但是,当我解雇我的 VC 时,UIActivityViewController
出现了。
按下活动项时,如何使其消失并且不再出现?
我在我的应用程序中创建并呈现UIActivityViewController
自定义UIActivity
项目。
当我点击UIActivity
图标时,UIActivityViewController
向下滑动并显示我的模态视图控制器。但是,当我解雇我的 VC 时,UIActivityViewController
出现了。
按下活动项时,如何使其消失并且不再出现?
您需要在 selected 上调用该activityDidFinish:
方法UIActivity
。
从文档中UIActivity activityDidFinish:
:
讨论
此方法关闭对象提供的共享接口UIActivityViewController
。如果您使用该activityViewController
方法提供了视图控制器,则此方法也会关闭该视图控制器。您必须在完成与此对象的服务相关的工作后调用此方法。无论您是否使用
activityViewController
orperformActivity
方法来启动服务,都是如此。调用方法时,使用布尔值表示服务是否成功完成。
假设当从 UIActivityVC 中选择 Activity A时,您希望在当前视图 Controller C上呈现模态视图控制器M。
如果你实现A的-(UIViewController*)activityViewController
方法,你需要调用[A activityDidFinish]
你的模态视图控制器M的dismiss方法;
如果你实现了 A的-(void) performActivity
方法,就不可能呈现模态视图,因为当前视图控制器C正在关闭的过程中UIActivityVC
。
我认为最终的解决方案有点棘手。我的基本想法是继承UIActivityViewController
和覆盖-(void) viewDidDisappear
方法。因此,您可以在当前视图控制器 C 上做任何您喜欢的事情(即呈现您自己的模态视图,或推送一系列其他视图控制器)。
我发现这个由 Ethan Huang
[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/