Не забудьте не путать ViewControllers и Views.
Они оба находятся в иерархии, и каждый ViewController имеет / контролирует "main" view
(который, вероятно, имеет группы подпредставлений).
Вы не добавляете представление в перо. Перо - это механизм, который поможет вам собрать представления. (Файл NeXT Interface Builder, если мы углубимся в номенклатуру.)
Вот как вы загружаете перо:
[[NSBundle mainBundle] loadNibNamed:@"foo" owner:self options:nil];
Обычно вы даете имя пера контроллеру, и он делает это за вас, но вы можете сделать это для. Существуют сложные и хитрые способы доступа к контенту. Ниже приведен стандартный способ сделать это.
Передаваемый вами владелец должен быть типом, объявленным в качестве владельца в этом файле пера. Некоторые выходы должны быть подключены к объектам в файле nib. После того, как вы загрузите nib-файл, они просто «будут там». Если вы назвали это дважды, он заменит первые и заменит их вторыми. (в основном безвредный, определенно бесполезный)
Так, как правило, вы подключили его до view
. Теперь у вас есть представление, которое плавает в памяти и не связано с иерархией представлений приложения. Время сделать это. Вы должны взять view
и выяснить, где оно принадлежит в существующей иерархии, и вызвать [someOtherView addSubview:self.view]
no it, и оно появится. Да, если вы хотите явно разместить / изменить размер, вам нужно будет это сделать. Обратите внимание, что view.frame
находится в системе координат суперпредставления.