我有一个辅助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)
}
没有错误,在正确的关闭按钮单击时调用该函数,但辅助视图不会被忽略。我已经尝试了dismissViewController的每个变体都无济于事。
当我使用主视图上的按钮激活相同的segue时,一切都按预期工作。我只是不希望用一堆按钮弄乱主视图。
非常感谢任何想法,非常感谢。
答案 0 :(得分:1)
dismissViewController仅适用于以模态方式呈现的视图控制器(使用Present Modally Segue
)
如this SO question的答案中所述,您应该解除由Show Segue
提供的视图控制器,如下所示:
navigationController?.popViewController(animated: true)
dismiss(animated: true, completion: nil)