2011-12-29 2 views
21

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

ответ

24

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

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

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

0

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

1

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

Смежные вопросы