2

我在我的应用程序中创建并呈现UIActivityViewController自定义UIActivity项目。

当我点击UIActivity图标时,UIActivityViewController向下滑动并显示我的模态视图控制器。但是,当我解雇我的 VC 时,UIActivityViewController出现了。

按下活动项时,如何使其消失并且不再出现?

4

3 回答 3

2

您需要在 selected 上调用该activityDidFinish:方法UIActivity

从文档中UIActivity activityDidFinish:

讨论
此方法关闭对象提供的共享接口UIActivityViewController。如果您使用该activityViewController方法提供了视图控制器,则此方法也会关闭该视图控制器。

您必须在完成与此对象的服务相关的工作后调用此方法。无论您是否使用activityViewControllerorperformActivity方法来启动服务,都是如此。调用方法时,使用布尔值表示服务是否成功完成。

于 2013-03-18T15:08:33.610 回答
2

假设当从 UIActivityVC 中选择 Activity A时,您希望在当前视图 Controller C上呈现模态视图控制器M

如果你实现A-(UIViewController*)activityViewController方法,你需要调用[A activityDidFinish]你的模态视图控制器M的dismiss方法;

如果你实现了 A-(void) performActivity方法,就不可能呈现模态视图,因为当前视图控制器C正在关闭的过程中UIActivityVC

我认为最终的解决方案有点棘手。我的基本想法是继承UIActivityViewController和覆盖-(void) viewDidDisappear方法。因此,您可以在当前视图控制器 C 上做任何您喜欢的事情(即呈现您自己的模态视图,或推送一系列其他视图控制器)。

于 2013-06-21T08:52:56.040 回答
0

我发现这个由 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/

于 2014-09-04T13:17:12.057 回答