2015-07-10 3 views
2

Я искал подобные вопросы довольно долгое время, большинство из которых упоминалось о xib-материале UIViewController. Я попытался добавить xib-файл для моей пользовательской модели viewController и обнаружил, что его владельцем файла Xib должен быть мой собственный класс модели viewController - это разумно. Но почему ситуация отличается, когда я создать XIB для моей UIView модели - пример следующим образом:Что такое владелец файла в XIB в этом случае?

Я создаю мой UIView модель, которая под названием «KWView» (KWView.h и KWView.m) тогда я создать XIB для этой модели, инициализирует его

KWView *oneView = [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil ]lastObject]; 

имя владельца файла в этом XIb является «NSObject» (тогда я попробовать любой другой более, что я выбрать, она проходит гладко), и там, я выбираю мнение, изготовленный на заказ Класс «KWView» [Этот xib с именем «KWView.xib»]

Вопросы:

1. Независимо от того, что я изменяю имя владельца Xib-файла своего пользовательского представления, оно работает. Если да, то что делает этот владелец этого файла здесь или говорит, почему это может произойти?

2. В основном, должен ли я установить владельца файла Xib пользовательского вида в класс моего пользовательского вида или класс viewController, к которому это представление будет добавлено? или просто установить его «NSObject»?

ответ

10

Ответ на ваш вопрос зависит от того, как вы собираетесь извлекать представление из наконечника в момент времени загрузки. Вы собираетесь извлечь его, как вы услужливо показали нам, как это:

KWView *oneView = 
    [[[NSBundle mainBundle] loadNibNamed:@"KWView" owner:nil options:nil] 
     lastObject]; 

Это означает, что вы не используете owner: для чего-нибудь здесь - это nil. Поэтому вы можете оставить владельца файла nib в NSObject.

Цель владельца файла является разрешает установить, в бобах, действия и связях аутлет между мнением (или его подвидами) и объектом, который будет реальным владелец во время загрузки - подобно (владелец) и его view (основной вид контроллера вида). Но в вашем случае нет такого реального владельца и нет таких соединений Action или Outlet.

+1

И для получения более подробной информации о процессе загрузки nib-загрузки см. Мою дискуссию здесь: http://www.apeth.com/iOSBook/ch07.html#_nib_loading_and_file_8217_s_owner – matt

+0

Это смущает меня в течение длительного времени .. Я новичок в iOS. Thx много, Ты сделал мне большую услугу! – tan

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