2013-06-14 2 views
1

Я пытаюсь инициализировать представление из файла NIB на контроллер моего представления на раскадровке.Инициализировать вид из NIB

Вот что я сделал:

  1. перетащить вид контроллер на раскадровку, поставил UIView OBJ как вид заполнителя и изменить свой класс на мой пользовательском класс вида с именем «CustomControl».

  2. следующий Я устанавливаю класс CustomControl из файла NIB, соединяю выходы своих подзонов и т. Д.

Мой вопрос: как загрузить это представление CustomControl из nib в вид закладки, который у меня есть на моем контроллере? Причина, по которой я хочу сделать это отдельно с файлом nib, состоит в том, что я могу захотеть повторно использовать этот элемент управления (пользовательский класс UIView) с другими проектами, а также, я думаю, было бы проще, если бы я мог просто установить ограничения вида между контроллером представления и вид закладок, не слишком беспокоившись о том, что ограничение управления связано с контроллером представления.

благодарит заранее!

+0

благодарит ребята за ответы и сожалеет о моей формулировке. У меня нет проблем с загрузкой диспетчеров представлений, но вместо этого загрузка пользовательского представления (из файла nib) на мой контроллер представления (в раскадровке, в которой есть простой UIView в качестве закладок). Поэтому, когда контроллер просмотра загружен, представление простого заполнителя становится тем файлом nib, который я создал –

ответ

0

Оставьте это с Раскадкой все вместе.

Вместо того, чтобы иметь местозаполнитель, ничего не имеет. Когда другой контроллер хочет загрузить этот контроллер вида, он может использовать [[MyViewController alloc] init] или [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil]. После того как контроллер представления будет создан, он может нажать его на навигационном контроллере, назначить его вкладке или всплыть в качестве представленного контроллера представления.

Вы теряете способность выполнять segues, но на самом деле вам не нужны.

0

Имейте контроллер представления оболочки.

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

Контроллер представления обертки создает экземпляр контроллера просмотра без раскадровки. Затем оболочка добавляет не-раскадровку в качестве контроллера детского представления (-addChildViewController:). Наконец, представление обложки добавляет представление не-раскадровки в качестве подсмотра.

- (void)viewDidLoad 
{ 
    … 
    MyViewController *child = [[MyViewController alloc] init]; 
    [self addChildViewController:child]; 
    [self.view addSubview:child.view]; 
    … 
} 
Смежные вопросы