Основываясь на том, что ретранслируется Джесси, вызывается viewDidLoad
, когда представление загружается в память (обычно при первом представлении контроллера представлений с момента запуска приложения - упрощается, но этого пока достаточно).
Когда вы показываете другие контроллеры представлений, а затем возвращаетесь к тому, как этот оригинальный контроллер просмотра «view1», если не было события памяти, которое отбросило его из памяти, оно НЕ будет звонить viewDidLoad
.
Вместо этого, он будет вызывать следующее по порядку:
viewWillAppear:
viewDidAppear:
В viewWillAppear:
, у вас есть место, чтобы сделать что-то "за кадром", прежде чем ваш контроллер представления отображается.
В разделе viewDidAppear:
вы можете выполнять дополнительные операции, которые подходят для того, когда вид контроллера просмотра уже виден. Например, вы хотите запустить небольшую анимацию, которую пользователь увидит, когда контроллер вида полностью будет виден.
В обоих этих методах убедитесь, что вы вызываете реализацию супер, прежде чем что-либо делать. Кроме того, чтобы узнать об этом жизненном цикле, установите оператор breakpoint или NSLog() в каждом из этих методов (viewDidLoad, viewWillAppear, viewDidAppear), чтобы увидеть, когда они вызываются.
Там есть концепция кусок в документации компании Apple на View Controllers, что стоит 20 минут прочитать - это будет проясняться много этой ключевой информацией жизненного цикла о View Controllers, и это центрального развития IOS. Смотрите раздел «Понимание View для управления жизненным циклом» по адресу:
http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/BasicViewControllers/BasicViewControllers.html%23//apple_ref/doc/uid/TP40007457-CH101-SW1
Дело в том, я создаю новый экземпляр ViewController и представить его. Новый экземпляр View1 – jarryd
Часто мы повторно используем один и тот же экземпляр контроллера представления, и поэтому мои комментарии выше в этом смысле. В вашем случае, если вы создаете новый объект («view1») в разных точках вашего приложения, я ожидаю, что каждый новый экземпляр вызовет удар в «viewDidLoad». Я бы поместил некоторую переменную свойства как «имя», которую вы можете установить каждый раз, когда вы создаете экземпляр одного из них. Сделай это. Затем в viewDidLoad выпейте что-то вроде: NSLog (@ "В viewDidLoad, например, с именем:% @", self.имя); Изучение этой последовательности вывода журнала покажет вам окончательный шаблон, с которым вы можете запланировать. – idStar