Пример: Могу ли я создать NIB, который представляет иерархию представлений, и использовать этот NIB с несколькими различными подклассами UIViewController?

Потому что: кажется, что владелец файла жестко привязан к определенному классу. Какой в ​​этом смысл? Просматривает ли система загрузки пера все файлы xib и выясняет по ним, какой класс хочет какой xib? Для меня было бы намного логичнее, если бы классы сказали системе загрузки пера, что они хотят загрузить xib xyz. На самом деле все это перо - просто архив для объектов, почти то же самое, как если бы я создал их программно и связал бы их друг с другом. Или не?

0
dontWatchMyProfile 19 Июн 2010 в 11:11

2 ответа

Лучший ответ

Есть метод loadNibFileNamed: withOwner. Конечно, у объектов-собственников должны быть подходящие розетки ...

0
Mark Bessey 19 Июн 2010 в 11:16
Какой класс определяет этот метод? В документах для этого нет совпадений.
 – 
dontWatchMyProfile
19 Июн 2010 в 11:26
Ссылка на документы здесь: developer.apple.com/mac/library/documentation/cocoa/reference/…:
 – 
Mark Bessey
20 Июн 2010 в 04:34

Вызов

[[NSBundle mainBundle] loadNibNamed:@"MyNIBFile" owner:myViewController options:nil];

Как сказал Марк, у объекта-собственника должны быть правильные розетки.

Если вы хотите использовать -initWithNibName:bundle:, самым чистым способом ИМО было бы наследование всех контроллеров представления от общего подкласса, в котором вы определяете общие выходы. Затем вы можете использовать этот класс как класс владельца файла в IB.

1
Ole Begemann 19 Июн 2010 в 12:15