Добавьте UIView в UIViewController с Xib - PullRequest
1 голос
/ 25 января 2011

Вот что я пытаюсь сделать:

  1. У меня есть AViewController и это Xib, затем я добавляю половину экрана UIView, которую я подключаю к B-UIView иУ B-UIView есть свой собственный xib, где я делаю дизайн.

Другими словами, у меня есть контроллер представления с его видом, который становится «основным», так как я добавляю к нему другие представления, которые имеют свои собственные xibs.

Иерархия:

1 ViewController UIView (xib) 2.B-UIView (имеет свой собственный xib) 3.C-UIView (имеет свой собственный xib)

Так возможно ли это, если да, то как?

Большое спасибо заранее!

1 Ответ

1 голос
/ 20 апреля 2012

Да, вы определенно можете это сделать, и это совсем не сложно!

На самом деле, это довольно распространенный способ проектирования чего-либо в Интерфейсном Разработчике. Затем вы можете загрузить свой пользовательский Xib-файл программно, используя loadNibNamed. Например:

[[NSBundle mainBundle] loadNibNamed:@"TVCell" owner:self options:nil];

В документации Apple об этом говорится в «Руководстве по программированию табличного представления для iOS».

Хотя их пример касается создания настраиваемой ячейки таблицы, те же правила применяются для любого представления. Внимательно изучите раздел, озаглавленный Загрузка пользовательских ячеек табличного представления из файлов пера .

Одна вещь, которую они не делают в этом примере, это загрузка представления верхнего уровня. loadNibNamed возвращает массив, поэтому, чтобы получить представление верхнего уровня, которое вам нужно, вы должны также сделать:

   MyCustomView *myCustomView = [myNibsArray objectAtIndex:0];

Итак, ваш код будет выглядеть так:

   NSArray *myNibsArray = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil];
   MyCustomView *myCustomView = [myNibsArray objectAtIndex:0];
...