我在通用应用中使用UIActivityViewController
的实例。它在iPad上完美运行。 iPhone上几乎没有,但并不完全。
我使用以下方式呈现:
[self presentViewController:self.activityViewController animated:YES completion:nil];
它正确显示可用的活动,如果我选择一个,它可以正常工作。然后,我可以再次点击“共享”按钮,并按照我喜欢的方式重复相同或不同的活动,只要我完成活动。
如果我从UIActivityViewController
取消,一切都很好;但如果我从邮件或消息中取消,下次我点击分享时,没有任何反应。如果我不耐烦再次点击,我会收到以下错误:
'应用程序尝试以模态方式呈现活动控制器。'
我在第二次出示控制器之前尝试解雇控制器,但它并不认为它是可以接受的。我也试过从根/导航控制器以及tableviewcontroller中呈现它,但是得到了相同的错误(即app试图呈现根控制器)。
我看到有很多奇怪的' UIActivityViewController
的问题,但我无法看到与我的问题相关的任何内容。
答案 0 :(得分:1)
问题是由于我使用的示例代码。我认为解雇代码正在执行,而不是!
我最终实现了UIPopoverControllerDelegate并实现了:
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
{
[self setPopoverActivity:nil];
}
这修好了!
答案 1 :(得分:0)
这也发生在我身上,我看到了你的答案,我不明白,因为“setPopoverActivity”无法识别。所以我开始做一些更改,这解决了在动作void中执行“UIActivityViewController”的初始化,而不是在viewDidLoad上,它位于第一个位置。
- (void) flipView {
self.activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:self.dataToShare
applicationActivities: nil];
self.activityViewController.excludedActivityTypes = @[UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList];
[self presentViewController:self.activityViewController animated:YES completion:nil];
}
希望它有所帮助!