【发布时间】:2014-04-06 15:06:10
【问题描述】:
我在通用应用程序中使用UIActivityViewController 的实例。它在 iPad 上完美运行。几乎,但不是完全在 iPhone 上。
我使用:
[self presentViewController:self.activityViewController animated:YES completion:nil];
它正确显示了可用的活动,如果我选择一个,它就可以工作。然后,我可以再次点击“共享”按钮,并根据自己的喜好多次重复相同或不同的活动,只要我完成了该活动即可。
如果我从UIActivityViewController 取消,一切都很好;但是如果我从邮件或消息中取消,下次我点击共享时,什么也不会发生。如果我不耐烦并再次点击,我会收到以下错误:
'应用程序试图以模态方式呈现一个活动控制器。'
我尝试在第二次展示控制器之前将其关闭,但它认为它无法关闭。我也尝试从根/导航控制器以及 tableviewcontroller 呈现它,但得到了等效的错误(即应用程序试图呈现根控制器)。
我发现UIActivityViewController 存在很多“奇怪”问题,但我看不到任何与我的问题相关的内容。
【问题讨论】:
-
我不确定编辑我的 OP 以添加一些句号和一个不相关的标签的价值(我的 OP 中没有提到 UIActivityIndicatorView)。任何解决问题的建议都非常感谢!奇怪的是,您需要 2k 声望才能拒绝对我自己帖子的错误编辑!
-
看起来你引用并持有你的 activityViewController 作为一个属性。这可能是这里的问题;您是否检查过堆栈中其他地方没有 self.activityViewController 的多个实例?
-
感谢您的建议。我很确定我没有得到多个实例。我使用了一个实例化属性的 getter:
- (UIActivityViewController *)activityViewController { if ( !_activityViewController ) { _activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[self] applicationActivities:nil]; } return _activityViewController; }它也可以在 iPad 上完美运行,唯一的区别在于演示文稿:
标签: ios iphone uiactivityviewcontroller airdrop