我在我的一个IBAction中有这个代码(当按下一个按钮时),这应该会调出一个新的视图控制器。
let addAlertVC = self.storyboard?.instantiateViewController(withIdentifier: "addAlert")
self.present(addAlertVC!, animated: false, completion: nil)
然而,当我运行应用程序并按下应该将我带到新viewcontroller
的按钮时,我却停留在原来的viewcontroller
上。我在新视图控制器的viewDidAppear
函数中放了一个print语句,只要按下按钮就打印出来,所以新的控制器肯定会出现。我没有在我的应用程序的任何地方解雇新控制器。
我在我的应用的其他部分使用了相同的代码,所以我非常困惑为什么它这次不能正常工作。
非常感谢任何帮助。
编辑:我修复了我的代码。事实证明,我不是如何调用视图控制器错误的,这是我的按钮。删除并重新添加按钮后,我的代码现在可以正常工作。
答案 0 :(得分:1)
您的视图控制器很有可能在您出现后取消分配。
尝试在控制器中的函数外声明视图控制器。类似的东西:
class ViewController{
var addAlertVC:UIViewController?
...
func someFunction(){
addAlertVC = self.storyboard?.instantiateViewController(withIdentifier: "addAlert")
self.present(addAlertVC!, animated: false, completion: nil)
}
}