Swift:关于presentScene()的安全实践

时间:2017-04-10 04:07:55

标签: ios swift performance scenekit

在我的程序中,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被调用时,它会做什么来“擦除”它下面的屏幕,还是只是在现有的视图之上堆叠更多视图?如果没有,它是如何工作的?这也是管理这种程序转换的最佳方式(在性能方面)吗?

1 个答案:

答案 0 :(得分:1)

首先,除非UIStoaryboard除了你有不同的名称,否则你不需要每次都创建Main的对象。修改代码:

let newViewController = self.storyBoard!.instantiateViewController(withIdentifier: "NewViewController") as! NewViewController

现在回答你的问题!当您在另一个UIViewControllerUIViewController上展示任何UINavigationController时,呈现的控制器没有堆叠。

简而言之,您在主持人UIViewController上提出了UIViewController模式。这可以在没有任何关系规则的任何UIViewController中发生。演示者应该注意解雇它所呈现的VC。

希望这可以解除你的怀疑。