Вы не должны реализовывать оба -viewDidLoad
и -loadView
; они для разных целей. Если вы загружаете NIB, вы должны реализовать -viewDidLoad
для выполнения любых функций, которые необходимо выполнить после загрузки NIB. Подключение панели вкладок там уместно, если вы еще этого не сделали в NIB.
-loadView
должен быть реализован, если вы не используете NIB, и должен создать представление.
-viewWillAppear
вызывается непосредственно перед выходом на экран. Это хорошее место для настройки наблюдений за уведомлениями, обновления ваших данных на основе классов моделей, которые изменились с тех пор, как вы последний раз были на экране, и в противном случае соберите свои действия, прежде чем пользователь увидит вас. Вы не должны выполнять какие-либо анимации здесь. Вы не на экране; Вы не можете оживить. Я вижу много глюков анимации из-за этой ошибки. Это вроде работает, но выглядит странно.
-viewDidAppear
вызывается после того, как вы пришли на экран. Именно здесь вы выполняете любые анимации входа (например, скольжение модально; не то, чтобы вы делали это очень часто, но я просто смотрел на некоторый код, который это делал).
-viewWillDisappear
вызывается прямо перед выходом за экран. Здесь вы можете выполнять любые анимации (включая отмену выбора ячеек таблицы и т. Д.).
-viewDidDisappar
вызывается после того, как вы за кадром (и анимация закончена). Снесите любые наблюдения здесь, освободите память, если это возможно, ложитесь спать как можно лучше.
Я касаюсь здесь установки и снятия наблюдений. Я углубляюсь в это в Просмотр контроллеров и уведомлений .