2009-07-31 4 views
0

Я изучаю разработку для iPhone без интерфейса Builder (личное предпочтение), и я не уверен, какую функцию контроллера представления я должен настроить для представления в: init, viewDidLoad или loadView. Я где-то читал, чтобы использовать init только для контроллера вида, если что угодно, и не настраивать представление, поскольку это может вызвать проблемы. Я также читал, что viewDidLoad предназначен только для загрузки файлов nib, но он работал, когда я пытался использовать его. Так что же я должен добавить в каждый из этих трех методов?iPhone Development - настройка представления в контроллере представления

Спасибо!

ответ

2

Ну каждый метод имеет свои собственные цели

1) инициализации

Этот метод предназначен только инициализировать ViewController, вы не обязаны переопределить этот метод, но если вы хотите сделать некоторые пользовательские инициализации Прежде чем загружать какие-либо представления, это может быть местом для этого. У вас есть разные вкусы методов init, вы можете посмотреть на документах на сайте apple.

2) loadView Этот метод здесь используется для программного создания вашего вида. Если этот метод не переопределен, по умолчанию будет создано пустое представление для вас, но если это вы MUSt инициализируете свойство viewController.view, это вызывается, когда представление UIViewController попадает в супер-представление.

3) viewDidLoad Этот метод вызывается после того, как вы просмотрели загружен на экран (после того, как loadView был вызван, а представление нажато на супер-просмотр или окно). Здесь вы можете добавить субвизоры к вашим представлениям контроллеров, а также выполнить другую настройку, которую вы хотите выполнить, как только ваш просмотр загрузится. Этот метод работает независимо от того, что вы делаете просмотр или программно.

+0

Вы уверены, что это из документов яблока в viewDidLoad: если контроллер представления не архивируется из файла nib, этот метод вызывается после его просмотра. Поэтому подклассы должны переопределять этот метод, а не метод loadView, для инициализации объектов, загружаемых из nib. ------- Это в значительной степени говорит nib -> viewDidLoad, programatically -> loadView, правильно? – mk12

+0

нет, это говорит, что если вы используете nib, вы DONT переопределите loadView, потому что настройка просмотра уже выполнена для вас в nib. thats все это говорит – Daniel

+0

, поэтому, если вы хотите сделать дополнительную настройку в viewcontroller, где вы используете nib в качестве представления, вы должны сделать это в viewDidLoad, не можете сделать это в loadView – Daniel

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