Как ссылаться на файлы XIB из родительского XIB - PullRequest
5 голосов
/ 22 марта 2011

Если я создаю пользовательский UIView в ChildView.xib - как мне ссылаться на него из MainWindow.xib?

Я попытался перетащить UIView в MainWindow.xib и связать его с тем же классом ChildView.Я сделал владельца ChildView.xib ViewController из MainWindow.xib и в ChildView.xib, я подключил IBOutlet childView к представлению, но когда я запускаю приложение, представление в ChildView.xib не загружается автоматически.

Возможно ли это?На базовом уровне, я думаю, я спрашиваю, как подключить UIViews из отдельных файлов XIB к ссылке IBOutlet в каком-то другом XIB ... как MainWindow.xib.

FWIW, я знаю, как это сделать вкод (создание экземпляра вручную с помощью NSBundle), но в этом случае я хочу знать, как это сделать полностью в IB (Interface Builder).

1 Ответ

2 голосов
/ 22 марта 2011

Я немного поэкспериментировал с этим и создал подкласс NSViewController со связанным файлом XIB. Я мог бы загрузить это автоматически, поместив экземпляр объекта NSViewController в основной файл XIB, и использовать инспектор Атрибутов, чтобы установить «имя пера» в имя XIB-файла подкласса NSViewController. Этот XIB-файл также содержит по умолчанию один объект представления, который можно настроить в IB или установить для типа подкласса пользовательского представления.

Однако для добавления представления контроллера представления к представлению содержимого главного окна все еще требовалась одна строка кода. (Я сделал это в делегате)

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
    [[self.window contentView] addSubview:myVC.view];
}

Дальнейшие эксперименты показали, что наличие собственного подкласса NSViewController не является необходимым, но вам все еще нужно, чтобы загруженный файл XIB принадлежал NSViewController.

Я не видел способа связать розетку в основной XIB с объектом просмотра в загруженной XIB. Вместо этого я мог только ссылаться на объект контроллера представления, а затем получать доступ к пользовательскому представлению через его свойство view.

...