Вопрос о [UIViewController alloc] - PullRequest
       16

Вопрос о [UIViewController alloc]

0 голосов
/ 28 января 2011

Я прошёл пример кода от Apple.Следующие 5 операторов взяты из MoveMeAppDelegate.m, принадлежащего образцу проекта «MoveMe»:

UIViewController *aViewController = [[UIViewController alloc] initWithNibName:@"MoveMeView" bundle:[NSBundle mainBundle]];

self.viewController = aViewController;
[aViewController release];

UIView *controllersView = [viewController view];
[window addSubview:controllersView];

Из документации @ «MoveMeView» определяет имя файла xib.Но кажется, что файл XIB может иметь более одного объекта просмотра.И в последнем утверждении выше, controllersView добавляется в объект окна.Мой вопрос: если у окна есть более одного вида, то как компилятор узнает, на какой вид ссылаются приведенные выше коды?

1 Ответ

2 голосов
/ 28 января 2011

Если вы спрашиваете, откуда ваше приложение знает, какое представление является видом контроллера: в вашем файле .xib вы «присоединяете» одно из представлений к контроллеру. Это отношение называется выходом, и в коде оно обозначается тегом IBOutlet в переменной экземпляра или свойстве.

Для получения дополнительной информации, ознакомьтесь с Руководством по программированию ресурсов Apple - в частности, раздел , озаглавленный «Nib Files».

Если вы спрашиваете, как окно знает, какие виды принадлежат ему: окно в iOS также является представлением и может иметь (почти) неограниченное количество подпредставлений.

Если вы спрашиваете что-то еще ... Я не знаю, о чем вы спрашиваете, поэтому, пожалуйста, уточните.

...