实例化并呈现 viewcontroller

Instantiate and present viewcontroller

我使用以下代码在我的应用中的视图之间切换:

    let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    settingsVC = storyBoard.instantiateViewController(withIdentifier: "SettingsVC") as! SettingsVC
    self.present(settingsVC, animated: true, completion: nil)

这很好用,例如在主菜单中按下一个按钮后。但是我在菜单和设置视图之间来回执行了几次,我注意到视图加载的次数与我来回加载的次数一样多。所以它可能一次又一次地创建视图控制器。我怎样才能确保它只做一次。那么有没有办法检查视图控制器是否存在。作为旁注:我不使用导航控制器,只有几个普通的视图控制器。

提前致谢!

你有几个选择。我和 Ayaz 一样,建议在导航控制器中执行此操作,但如果出于某种原因您不想这样做,我建议您在完成后关闭 SettingsVC。您可以通过在点击 "close" 或 "back" 按钮后调用 self.dismiss(animated: true, completion: nil) 来完成此操作。

So is there a way to check whether the view controller does exist.

存在。您自己在这里创建它,所以您知道它是创建的。但是当相反的情况发生时,它也会被销毁,即当您使用 present 呈现的视图控制器被关闭时。这是预期的并且是正确的。如果您希望在实例化之间保留状态并在下一次实例化时恢复状态,则由您来保留和恢复它。