Всегда ли XIB нужен контроллер вида? - PullRequest
4 голосов
/ 30 января 2012

Если я делаю интерфейс в IB, мне всегда нужна база UIViewController или я могу просто перейти прямо к UIView?

На данный момент я делаю весь свой дизайн в obj-c, что делает его немного более занятым .

Если я должен использовать UIViewController, есть ли в любом случае, чтобы высосать из него UIView, если это все, что я хочу ?

Я просто хочу иметь возможность извлекать статические макеты из XIB вместо того, чтобы объединять их в obj-c.

Любые предложения приветствуются !

Ответы [ 4 ]

1 голос
/ 30 января 2012

Нет, вам не нужно связывать UIViewController с XIB.

Во-первых, не добавляйте контроллер представления в XIB.Затем вы часто используете API-интерфейсы NSNib или UINib для доступа к объектам верхнего уровня пера, так что вы можете избежать контроллера представления и настроить любую структуру, какую захотите, в редакторе NIB и получить программный доступобъекты в NIB по мере необходимости.

1 голос
/ 30 января 2012

UIViewController имеет этот удобный метод initWithNib: bundle:, который делает все так просто, но есть также способы получить объекты из XIBS с помощью:

NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"WhateverItsNamed" owner:self options:nil];

(и здесь массив nib содержит объекты, которые соответствуют тем объектам, которые хранятся в файле XIB).

1 голос
/ 30 января 2012

Нет, вам не нужен UIViewController, если он не отвечает вашим потребностям.

После инициализации UINib используйте его:

-instantiateWithOwner:options:

для доступа к содержимому пера. Сделайте корневой объект пера UIView (или его подклассом). Если вы планируете устанавливать соединения с владельцем файла, вам необходимо установить для владельца файла соответствующий контексту класс.

0 голосов
/ 30 января 2012

В iOS 5 XIB больше не рекомендуется использовать, вместо этого вы должны использовать раскадровку.И чтобы просто ответить на ваш вопрос, каждый вид верхнего уровня требует, чтобы за него отвечал контроллер представления.

Все подчиненные представления могут быть выходом в вашем контроллере представления и обрабатываться оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...