在演示过程中警告的含义!“

当我在我的项目中joinInstagram时 我从UIImagePickerController得到一个image ,然后我想把它发送到Instagram但是,当我通过UIDocumentInteractionController委托方法presentOptionsMenuFromRect:inView: animated:发送imageInstagram presentOptionsMenuFromRect:inView: animated:像这样

 [documentInteractionController presentOptionsMenuFromRect:CGRectZero inView:self.view animated:YES]; 

警告来了警告:尝试在演示文稿正在进行时呈现<_UIDocumentActivityViewController:0x7584780>!
该应用程序不是崩溃。 但是我没有得到这个问题。 为什么这个警告来了,它是什么意思。 我在互联网上search,并阅读有关这个​​问题,但没有得到任何答案。 帮我 !!

 // Breaks [viewController1 dismissViewControllerAnimated:YES completion:NULL]; [self presentViewController:viewController2 animated:YES completion:NULL]; // Does not break [viewController1 dismissViewControllerAnimated:YES completion:^{ [self presentViewController:viewController2 animated:YES completion:NULL]; }]; 

上面代码的Swift 3版本看起来像这样:

 // Breaks viewController1.dismiss(animated: true) present(viewController2, animated: true) // Does not break viewController1.dismiss(animated: true) { present(viewController2, animated: true) } 

请注意上面第二个例子中使用完成处理程序。
它只在viewController1被完全解除之后呈现viewController2

这意味着您正在呈现或解散UIImagePickerController并试图呈现UIDocumentInteractionController ,而第一次演示或解散尚未完成。

这意味着您要同时呈现2个ViewController。 第一次演示完成后,请致电您的代表。

这也可能发生,如果你有(说)连接到一个IBAction的UIButton来呈现一个ViewController,并且还在Storyboard中从button创build一个Segue到目标ViewController。

当我忘记从UIButton中删除IBAction连接时,发生了这种情况,当我转移一些互动。

删除IBAction连接或segue将解决它。

正如之前所说,这意味着你正试图同时呈现两个模态窗口或popup窗口。 但在我的情况下,当我收到这条消息时,我还没有看到任何模式窗口或popover。

在我的情况下,错误的原因如下。 当我第一次给popover打电话时,这是另一个阻止popover显示的错误,但是它仍然处于“呈现”状态。 以下所有尝试显示popup式窗口都失败,并显示运行时错误“正在进行演示!”。

所以,如果你碰到相同的情况,查看日志,并尝试find第一个错误开始与*** WebKit discarded an uncaught exception in the...

希望能节省一些时间。

对于那些需要/想要迅速3版本,这里是

 viewController1.dismiss(animated: true, completion: { self.present(self.viewController1, animated: true) }) 

viewController1是你想要呈现的视图控制器。

尝试..

  double delayInSeconds = 1.0; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ [self performSegueWithIdentifier:@"Identifier" sender:self]; }); 

我得到这个消息,因为我复制粘贴了一个button,已经发送事件附加到它,我继续创build另一个连接,因为新的button应该打开新的观点。

所以在技术上我试图同时打开2个视图。