警告的含义“而演示正在进行!”(Meaning of Warning “while a presen

2019-07-18 13:05发布

当我integarting我的项目中的Instagram。 我得到一个imageUIImagePickerController和之后我想将它发送到Instagram的但是当我发送image通过向Instagram的 UIDocumentInteractionController委托方法presentOptionsMenuFromRect:inView: animated:像这样的

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

该警告的警告:试图提出<_UIDocumentActivityViewController:0x7584780>上同时演示正在进行!
该应用程序没有崩溃。 但我没有得到的问题。 为什么这样的警告来了,这意味着什么。 我搜索互联网和阅读关于这个问题,但没有得到任何答复。 帮我 !!

Answer 1:

// 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];
}];

雨燕3.0版本上面的代码如下所示:

// Breaks
viewController1.dismiss(animated: true)
present(viewController2, animated: true)

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

注意在上面的第二个例子中使用完成处理的。
它只是呈现viewController2viewController1已经完全驳回。



Answer 2:

这意味着你正在演示或者解聘UIImagePickerController ,并试图提出UIDocumentInteractionController ,而没有完成第一个演示文稿或解聘。



Answer 3:

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

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

viewController1是要呈现的ViewController。



Answer 4:

这意味着你在同一时间呈现2个ViewControllers。 第一个演示文稿完成后,打电话给你的委托。



Answer 5:

如果你有这也可能发生(比如)一个UIButton迷上了一个IBAction为呈现一个视图控制器,并且也从按钮到目标的ViewController创建的故事板中一个SEGUE。

过这种情况时,我忘了删除一个UIButton的IBAction为连接时,我转向周围的一些互动。

删除无论是IBAction为连接或SEGUE会解决这个问题。



Answer 6:

由于这是之前说的,这意味着你试图在同一时间呈现2个模态窗口或popovers。 但在我的情况下,我还没有看到任何模式窗口或当我得到这个消息酥料饼。

原因在我的情况下错误是下面。 当我叫酥料饼露面的第一次,这是另一种错误,阻止酥料饼的显示,但它在某种程度上仍然是“赠送”的状态。 以下所有试图表明酥料饼的运行时错误失败“,而演示正在进行!”。

所以,如果你遇到了同样的情况,通过看日志,并尝试找到第一个错误开始*** WebKit discarded an uncaught exception in the...

希望这将节省别人的时间。



Answer 7:

我得到这个消息,因为我复制粘贴已派出连接到它的事件一个按钮,我继续,因为新的按钮应该打开新视图中创建另一个连接。

因此从技术上讲我试图打开在同一时间2次。



Answer 8:

尝试..

    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];

    });


文章来源: Meaning of Warning “while a presentation is in progress!”