如何在模态显示的视图控制器上执行当前模态segue?

时间:2016-06-30 11:07:40

标签: ios swift segue

这听起来有点奇怪。

我有一个视图控制器,我们称之为VC1,它以模板形式呈现为表单。

当用户点击VC1中的按钮时,选择器会显示为操作表。当用户选择特定项目并点击"完成"在操作表上,我想以模态方式呈现另一个VC(VC2)。

让我告诉你行动表:

enter image description here

所以我添加了一个"呈现模态"连接VC1UINavigationController的segue。此UINavigationController具有VC2作为其根视图控制器。 segue有一个表格" Form Sheet"和一个" Flip Horizo​​ntal"介绍

当我测试我的应用时,控制台中会出现此警告,并且根本没有显示视图控制器:

  

警告:尝试呈现已经呈现的内容(null)

我就像#34;它到底在说什么? VC1如何呈现null?"奇怪的是它使用null(这是C#和Java的术语)而不是nil(Swift使用的)。

我尝试了不同的过渡和演示。但是出现了同样的信息。我还尝试删除UINavigationController并直接展示VC2。这次,错误消息变为:

  

警告:尝试呈现已经呈现的内容(null)

如何以模态方式呈现VC2

1 个答案:

答案 0 :(得分:0)

经过一番尝试,我发现像这样调用dispatch_after并执行segue解决了问题。但我不知道为什么。

dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue()) {
    self.performSegueWithIdentifier("someIdentifier", sender: self)
}

也许这是由于某种行动表的魔力。