Я не знаю точно, в каком правильном месте установить такие вещи, как tintColor NavigationBar или заголовок моего ViewController. Он работает в методе -init и в методе -viewLoad. Что такое "наилучшая практика" или "правильный путь"? Имеет ли один из этих преимуществ?
IOS: В чем разница между -init и -viewLoad ViewController?
Ответ 1
Методы init (да, есть больше одного), где инициализируется UIViewController. Таким образом, это место, где вы делаете материал для UIViewController, а не его представлений.
Если вы используете nib для загрузки вашего представления, лучшим местом для установки каких-либо свойств является метод viewDidLoad. Этот метод вызывается после загрузки nib.
Если вы программным образом настроили представление с помощью метода loadView, то это место, где можно установить свойства UIControl.
Так как система может выгружать представления для сохранения памяти, она оставит только UIViewController. Любые свойства, установленные в методе init, снова не будут применяться, так как UIViewController уже инициализирован.
Ответ 2
метод init используется для инициализации viewController, в то время как метод viewDidLoad используется для загрузки вашего nib (т.е. вашего представления). поэтому, когда вы хотите что-то сделать с помощью viewController, используйте метод init, и когда вы хотите что-то сделать с вашим представлением, используйте viewDidLoad.
Ответ 3
Правильное место - установить его в viewDidLoad. Чтобы узнать больше об этих методах, Apple предоставила documentation