ViewController viewDidLoad после того, как нынешний вызов вызвал - PullRequest
0 голосов
/ 23 ноября 2011

У меня есть viewController, который называется «FirstViewController». В IBAction я вызываю другой ViewController, называемый "thePageFlipViewController", и отправляю его в поле зрения

[self presentModalViewController:thePageFlipViewController animated:YES];

через некоторое время пользователь закрывает PageFlipViewController кнопкой, где следующий код выполняется через делегата в FirstViewController:

[self dismissModalViewControllerAnimated:YES]; [thePageFlipViewController release];

И вот моя проблема:

-viewDidLoad в FirstViewController get иногда вызывается после отклонения thePageFlipController. Я не понимаю почему, потому что firstViewController должен жить в фоновом режиме. Зависит ли это от того, как долго отображается модальный вид? Возможно ли, что ARC что-то выпускает?

Моя проблема в том, что я инициализирую множество объектов в viewDidLoad, и приложение вылетает, если viewDidLoad вызывается снова. Я определяю там несколько маршрутов для RESTKit, а RestKit жалуется, что маршруты уже настроены, и приложение вылетает.

Любая помощь приветствуется.

1 Ответ

1 голос
/ 23 ноября 2011

Когда вид фактически не отображается, его можно выгрузить, чтобы освободить память. Когда это произойдет, вы получите вызов viewDidUnload:, чтобы освободить любые объекты, на которые у вас есть строгие ссылки. Затем в следующий раз, когда потребуется представление, viewDidLoad: будет вызвано снова, когда представление будет перезагружено, и вам придется воссоздать объекты, которые вы выпустили в viewDidUnload:.

См. раздел управления памятью справочника по классу UIViewController.

Также этот ответ уже имеет хорошее объяснение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...