我有一个非常简单的例子,一个按钮显示一个 UIActivityViewController 来分享一些内容。问题是当用户取消或发送电子邮件时,邮件撰写者不会被解雇。
NSArray *items = [NSArray arrayWithObjects:@"share",nil];
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
我试图关闭activityViewController.completionHandler中的模态视图,但随后控制台说另一个动画正在处理中,有时会使应用程序崩溃,所以这不是解决方案。除了其他社交网络(脸书、推特)运行良好外,无需执行任何操作。
经过一些测试,我检测到只有当呈现 UIActivityViewController 的 UIViewController 是 UITabBarController 的子项时才会发生这种情况。如果在我的 AppDelegate 我创建这样的应用程序它不起作用:
UIViewController > UINavigationController > UITabbarController > Window
但如果我删除标签栏一切正常!:
UIViewController > UINavigationController > Window
解决问题的解决方法是从 rootviewcontroller 中提出的。
[self.view.window.rootViewController presentViewController:activityViewController animated:YES completion:NULL];
但我想知道这里发生了什么。
谢谢!;)