2012-12-06 98 views
1

我已經使用了Cocos2D幾個月。我用:模擬Cocos2D替換UIKit中的場景

MyCCScene *sceneToRun = [MyCCScene node]; 
[[CCDirector sharedDirector] replaceScene:sceneToRun]; 

這加載新的場景,從內存中清理前一個場景,然後顯示新的場景。非常簡單。

問題: 在UIKit中是否有類似的東西?

-Modal segues將舊的ViewController保留在內存中,它們的用途是不同的。

-Push segues只能在UINavigationControllers中工作。

我想要走的路是實現我自己的Container ViewController,它以我想要的方式處理其子ViewControllers和內存。 http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81

但我不完全確定。沒有更直接的方法嗎?對於這樣一個簡單而明顯的事情來說,這看起來像是一件大事

+0

您可能想了解更多關於故事板,視圖控制器和MVC的一般信息。 UIKit的工作方式與cocos2d不同。您不要在UIKit中「替換場景」,而是展示其他視圖控制器。先前的視圖控制器是否仍然存在完全取決於您。 – LearnCocos2D

+0

您還可以設計視圖控制器以保持活動狀態,但在當前未呈現任何不必要的數據(或接收到內存警告時)時加載和卸載。 – LearnCocos2D

回答

0

我可能找到了一個很好的解決方案。應該使用UINavigationController,並手動管理其viewContollers屬性(這是UIViewControllers的堆棧)。加載新UIViewController之後(或之前),您可以從堆棧中刪除舊的UIViewController,從而從內存中清除它。

這篇文章幫助: How can I pop a view from a UINavigationController and replace it with another in one operation?

這種方式可以使程序流程,只有當UIViewController的是在時間的記憶,你替換它們,當你需要一個新的UIViewController。