这听起来可能有点奇怪。
我有一个 View Controller ,我们称之为 VC1
,它以表单形式呈现。
当用户点击 VC1
中的按钮时,选择器会显示为操作表。当用户选择特定项目并点击操作表上的“完成”时,我想以模态方式呈现另一个 VC (VC2
)。
让我向您展示操作表:
因此,我添加了一个连接 VC1
和 UINavigationController
的“Present Modally”segue。此 UINavigationController
将 VC2
作为其 Root View Controller 。该segue有一个“Form Sheet”演示和一个“Flip Horizontal”演示。
当我测试我的应用程序时,此警告出现在控制台中,并且根本不显示 View Controller :
Warning: Attempt to present on which is already presenting (null)
我当时想“这到底在说什么?VC1
怎么会呈现 null?”奇怪的是,它使用 null
(这是 C# 和 Java 的术语)而不是 nil
(Swift 使用的术语)。
我尝试了不同的过渡和演示。但出现同样的消息。我还尝试删除 UINavigationController
并直接呈现 VC2
。这次,错误消息更改为:
Warning: Attempt to present on which is already presenting (null)
如何以模态方式呈现 VC2
?
最佳答案
经过一番尝试,我发现像这样调用 dispatch_after
并执行 segue 可以解决问题。但我不知道为什么。
dispatch_after(DISPATCH_TIME_NOW, dispatch_get_main_queue()) {
self.performSegueWithIdentifier("someIdentifier", sender: self)
}
也许这是由于某种 Action 表魔法造成的。
关于ios - 如何在以模态方式呈现的 View Controller 上执行当前模态序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38121360/