iOS: В чем разница между -init и -viewLoad ViewController? - PullRequest
21 голосов
/ 29 декабря 2011

Я не знаю точно, в каком месте можно устанавливать такие вещи, как tintColor панели навигации или заголовок моего ViewController.Это работает в методе -init и методе -viewLoad.Что такое «наилучшая практика» или «правильный способ» сделать это?Есть ли одно из этих преимуществ?

Ответы [ 3 ]

24 голосов
/ 29 декабря 2011

Методы init (да, их больше одного) - это место инициализации UIViewController.Таким образом, это место, где вы делаете вещи для UIViewController, а не для его представлений.

Если вы используете nib для загрузки просмотра, тогда лучшим местом для установки любых свойств является метод viewDidLoad,Этот метод вызывается после загрузки nib.Если вы настраиваете представление программным способом, используя метод loadView, то это место для установки UIControl свойств.

Поскольку система может выгружать представления для экономии памяти, она оставляет UIViewController в покое.Любые свойства, установленные в методе init, больше не будут применяться, поскольку UIViewController уже инициализирован.

1 голос
/ 29 декабря 2011

метод init используется для инициализации viewController, в то время как метод viewDidLoad используется для загрузки пера (т. Е. Вашего представления). поэтому, если вы хотите что-то сделать с вашим viewController, тогда используйте метод init, а когда вы хотите что-то сделать с вашим представлением, тогда используйте viewDidLoad.

0 голосов
/ 29 декабря 2011

Правильно установить его в viewDidLoad. Чтобы узнать больше об этих методах, Apple предоставила документацию

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