Аналог Cocos2D replaceScene в UIKit
Я использовал Cocos2D в течение нескольких месяцев. Я использую:
MyCCScene *sceneToRun = [MyCCScene node];
[[CCDirector sharedDirector] replaceScene:sceneToRun];
Это загружает новую сцену, очищает предыдущую сцену из памяти, а затем отображает новую сцену. Довольно просто.
Вопрос: Есть ли что-то похожее на это в UIKit?
Модальные сегменты хранят старый ViewController в памяти, их назначение другое.
-Push сегменты работают только в UINavigationControllers.
Я думаю, что путь состоит в том, чтобы реализовать мой собственный Контейнер ViewController, который обрабатывает его дочерние ViewControllers и память так, как я хочу. http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006926-CH3-SW81
Но я не совсем уверен. Разве нет более простого метода? Это выглядит огромным излишним для такой простой и очевидной вещи.
1 ответ
Я мог бы найти хорошее решение. Нужно использовать UINavigationController и управлять его свойством viewContollers (которое является стеком UIViewControllers) вручную. После (или до) загрузки нового UIViewController вы можете удалить старый UIViewController из стека и, таким образом, удалить его из памяти.
Помогло это сообщение: Как я могу получить представление из UINavigationController и заменить его другим в одной операции?
Таким образом, вы можете создать программный поток, в котором только когда UIViewController находится в памяти одновременно, и вы заменяете их, когда вам нужен новый UIViewController.