2011-01-14 7 views
2

Сообщите мне, в какие времена инициируется метод init и loadView. Насколько мне известно, метод init вызывается только один раз, когда представление инициализируется и loadView вызывается в любое время. Таким образом, даже если вы нажимаете новый вид в стеке просмотра и затем выталкиваете его, то также вызывается вызываемый вид loadView. Но когда я запускаю свой код в режиме отладки, оба этих метода получаются один раз, независимо от того, сколько раз я загружаю один и тот же экран. Пожалуйста, дайте мне знать, если я что-то упустил.loadView Vs init method

ответ

5

Вы правы в некоторых точках :) Метод init вызывается при создании объекта ViewController. Метод loadView вызывается каждый раз, когда ViewController должен загружать свой вид в память. Это может произойти до того, как представление будет отображаться в первый раз или когда оно должно отображаться для второго, третьего, ... времени, но ранее было удалено из памяти. (это может произойти, если в вашем приложении не хватает памяти.) Если вы хотите выполнять какой-либо код каждый раз, когда вид становится видимым, вы должны взглянуть на методы viewWillAppear/viewWillDisappear/viewDidAppear/viewDidDisappear.

+0

Отлично. Спасибо, Пол !!! – Abhinav

5

loadView вызывается при доступе к объекту view вашего контроллера и его nil.

Если вид был выгружен (viewDidUnload был вызван для целей памяти), то loadView будет вызываться снова. Если нет, это не будет вызвано.

Что вы хотите, это viewWillAppear: или viewDidAppear:.