【发布时间】:2017-07-08 07:01:10
【问题描述】:
我有一个辅助 ViewController,它通过 Storyboard segue 以编程方式显示:
func actioncall ()
{
performSegue(withIdentifier: "showIgnoreVC", sender: self)
}
)
此函数是主 ViewController 的一部分,通过 AppDelegate 的 NSNotification 调用,而这又由菜单项单击触发。
但是,即使 segue 连接到主 ViewController,以下代码也不会关闭辅助视图:
@IBAction func dismiss(_ sender: Any)
{
print("Hello? Gonna close?")
self.presenting?.dismissViewController(self)
}
没有错误,该函数在正确的Dismiss按钮点击时被调用,但辅助视图没有关闭。我已经尝试了dismissViewController 的所有变体都无济于事。
当我使用主视图上的按钮激活相同的 segue 时,一切都按预期进行。我只是不想用一堆按钮弄乱主视图。
任何想法都非常感谢,非常感谢。
【问题讨论】:
-
当
self.presenting?.dismissViewController(self)这一行执行时,self.presenting的值是多少? -
@DaveWeston,好问题。使用
let x = self.presenting! as NSViewController,应用程序崩溃并出现致命错误:在展开可选值时意外发现 nil。显然没有 viewController 呈现。