在呈现viewController之后呈现viewController会发生什么。它的实例是否向前生活?它是否被显示的viewController视图遮挡时被破坏?如果它被销毁,我如何告诉系统不要销毁它,但保持原样?
我正在设计游戏中的游戏,当点击某个按钮时,游戏会被呈现的viewController遮挡。当玩家返回游戏时,我希望它在呈现viewController
之前完全恢复其状态答案 0 :(得分:2)
呈现视图控制器保留它的实例,并在呈现的视图控制器被解除后返回控制。实际上,如果可能,您应该拥有呈现视图控制器dismiss the presented controller。
由于UIViewControllers的实例在呈现(或推送)另一个视图控制器时保持不变,因此最佳实践是在UIViewControllers中实现didReceiveMemoryWarning
方法以释放您可以使用的任何内存(清除缓存等)。您清除的任何数据都可能需要在viewWillAppear
方法中重新填充。
View Controller Programming Guide for iOS 的其他信息:
UIViewController类内置了对呈现视图控制器的支持,并且可供所有视图控制器对象使用。您可以从任何其他视图控制器呈现任何视图控制器,尽管UIKit可能会将请求重新路由到其他视图控制器。呈现视图控制器在原始视图控制器(称为呈现视图控制器)和要显示的新视图控制器之间创建关系,称为呈现的视图控制器。此关系构成视图控制器层次结构的一部分,并保持原位,直到解除显示的视图控制器。