Interface Builder автоматически создает экземпляры пользовательских контроллеров, на которые вы перетаскиваете? - PullRequest
0 голосов
/ 21 февраля 2011

Итак, у меня есть:

  • создал пару кастомов контроллеры (добавить файл Подкласс UIViewController)
  • в Interface Builder перетащили два Элементы ViewController из библиотеки в MainWindow.xib (т.е. когда Приложение Delegate есть, а главное окно), затем установите их класс имена, чтобы быть теми из обычая контроллеры соответственно

Теперь, когда я сделал это:

  • если это затем автоматически принять заботиться о создании этих экземпляров контроллеры для использования в Делегат приложения "didFinishLaunchingWithOptions" метод например?

  • Или мне все еще нужно создать эти Контроллер для Приложения Делегировать файлы * .h и * .m?

  • Или другими словами, снова пытаясь понять, что IB делает на самом деле для вы, когда вы создаете customViewControllers и связать их до ...

Ответы [ 2 ]

3 голосов
/ 21 февраля 2011

Немного подробнее: когда вы добавляете объекты в файл nib / xib, происходит то, что живые объекты создаются, а затем архивируются в файл nib.При загрузке файла пера эти архивные объекты не архивируются и «возвращаются к жизни» с теми же настройками, которые были у них при первоначальном архивировании.Кроме того, любые соединения, которые вы делаете в nib-файле между фактическими (UILabel, UIViewController и т. Д.) Объектами и прокси-объектами («Владелец файла»), заполняются указателями на эти вновь разархивированные / созданные объекты.Обратите внимание на особую роль Владельца Файла: класс, которому назначен Владелец Файла, это , а не , созданный во время загрузки пера.Вместо этого, во время загрузки nib-файла, например, с помощью этого вызова:

[[NSBundle mainBundle] loadNibNamed:@"MyNib" owner:ownerObject options:nil];

все выходы, имеющие значение nil в ownerObject (того же типа класса, который указан в Owner файла), которые подключаютсязатем до объектов в кончике устанавливаются так, чтобы они указывали на эти вновь созданные объекты.

Вы можете использовать этот факт для создания автономных и многократно используемых битов иерархий View, которые вы загружаете и используете где хотите:верхние / нижние колонтитулы / пользовательские ячейки для UITableViews, многоразовые «виджеты», которые вы сами создаете / упаковываете и многократно используете в приложении и т. д. Как только вы это поймете, ваши навыки программирования в режиме «Какао» (касание) перейдут на «уровень» и создадутструктурированное, модульное представление объектов становится намного, намного проще и веселее!

0 голосов
/ 21 февраля 2011

Компоненты в файле пера будут созданы автоматически, когда они будут загружены из пера, как вы сказали.Во многих случаях вам, вероятно, захочется иметь файлы .h / .m для вашего контроллера, чтобы добавить туда собственный код.

...