我最近刚开始使用Swift,并且面对一个使用viewDidLoad方法的“怪异”错误。
我非常简单的应用程序目前只有2个viewcontrollers:
现在我的问题是MainViewController的viewDidLoad方法总是在MainViewController出现时被调用(在应用程序的开始和每次DataViewController消失时)。特别是,始终打印msg“新创建的MainViewController”。
更糟糕的是,似乎我的应用程序正在“秘密”重置。为了说明这一点,我在MainViewController中定义了类变量“createView”,默认情况下为true,并且在viewDidLoad(调用/设置此变量的唯一位置)期间设置为false。然而,在MainViewController出现后,仍然始终在输出中打印msg“MVC new created”。怎么可能?为什么/如何将createView重置为true?
希望这段代码足以找到问题所在。否则,如果遗漏了什么,请告诉我。
感谢您的帮助!
override func viewDidLoad()
{
super.viewDidLoad()
if (createView)
{
determineArraySize()
createDataArray()
print("MainViewController newly created")
createView = false
}
else {print("Nothing happened")}
}
答案 0 :(得分:1)
正如@moritz在评论中提到的,请查看在故事板中呈现DataViewController的方式。
如果视图以模态显示,则应调用:
解雇(动画:真实,完成:无)
如果使用show seque显示视图,则应调用:
_ = navigationController?.popViewControllerAnimated(true)