在我的程序中,viewControllers之间的一些转换是通过以下代码以编程方式管理的:
let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let newViewController = storyBoard.instantiateViewController(withIdentifier: "NewViewController") as! NewViewController
self.present(newViewController, animated: true, completion: nil)我一直在想这练习有多安全。当presentScene被调用时,它是否做了什么来“擦除”屏幕下面的屏幕,还是只是在现有视图的基础上堆叠更多的视图?如果没有,它是如何工作的?这也是管理这种程序转换的最佳方法(就性能而言)吗?
发布于 2017-04-10 04:18:56
首先,您不需要每次都创建UIStoaryboard对象,除非您有与Main不同的名称。修改您的代码:
let newViewController = self.storyBoard!.instantiateViewController(withIdentifier: "NewViewController") as! NewViewController现在来问你的问题!当您在另一个UIViewController或UINavigationController上显示任何UIViewController或UINavigationController时,所提供的控制器没有堆栈。
简而言之,您是以模式方式在演示者UIViewController上显示一个UIViewController。这可以在没有任何关系规则的情况下发生在任何UIViewController上。推荐人应注意拒绝它所提供的VC。
希望这能消除你的疑虑。
https://stackoverflow.com/questions/43314818
复制相似问题