【发布时间】:2025-12-27 15:00:17
【问题描述】:
我已经使用 Cocos2D 几个月了。我用:
MyCCScene *sceneToRun = [MyCCScene node];
[[CCDirector sharedDirector] replaceScene:sceneToRun];
这会加载新场景,从内存中清除前一个场景,然后显示新场景。很简单。
问题: UIKit 中是否有类似的东西?
-Modal segues 将旧的 ViewController 保留在内存中,它们的目的不同。
-Push segues 仅在 UINavigationControllers 中工作。
我认为要走的路是实现我自己的 Container ViewController,它按照我想要的方式处理它的子 ViewController 和内存。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81
但我不完全确定。没有更直接的方法吗?对于如此简单明了的事情,这看起来有点过头了。
【问题讨论】:
-
您可能想了解更多有关 Storyboard、视图控制器和 MVC 的一般信息。 UIKit 的工作方式与 cocos2d 不同。您不会在 UIKit 中“替换场景”,而是呈现其他视图控制器。前一个视图控制器是否保持活动状态完全取决于您。
-
您还可以设计视图控制器以保持活动状态,但在当前未呈现时加载和卸载任何不必要的数据(或收到内存警告时)。
标签: ios uiviewcontroller replace cocos2d-iphone containment