Добавить UIView на UIViewController - PullRequest
       13

Добавить UIView на UIViewController

3 голосов
/ 24 января 2011

Я хочу добавить «пользовательский» uiview на контроллер uiview, это пользовательское представление, которое я создал с помощью xib, и оно отдельно от контроллера представления,

кто-нибудь знает, как добавить uiview с xib впользовательский контроллер?

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

Ответы [ 2 ]

3 голосов
/ 24 января 2011

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

@interface Controller {}
@property(retain) IBOutlet UIView *extraView;
@end

…

- (void) viewDidLoad // or anywhere else
{
    [[NSBundle mainBundle] loadNibNamed:@"extras" owner:self options:nil];
    NSAssert(extraView != nil, @"The extra view failed to load.");
    [[self view] addSubview:extraView];
}

Предполагается, что вы установили Controller в качестве владельца файла в Интерфейсном Разработчике и связали представление с выходом extraView. Также обратите внимание, что могут быть более элегантные решения, такие как вставка дополнительного представления в основной NIB для вашего контроллера; зависит от ситуации.

1 голос
/ 25 января 2011

Похоже, вы хотите самый распространенный сценарий - просто загрузите инициализированный пользовательский подкласс UIView в контроллер.

  1. Создайте новую XIB, называемую «View XIB» в мастере создания нового файла Xcode.
  2. В Интерфейсном Разработчике выберите объект «Владелец файла» и на вкладке «Удостоверение объекта» Инспектора объектов (Cmd-4) введите Controller (или как называется ваш класс контроллера) в поле «Класс».
  3. Сделайте то же самое с представлением, введя имя вашего класса представления.
  4. Ctrl + перетаскивание от владельца файла к представлению, вы должны иметь возможность подключить представление к выходу представления, определенному на вашем контроллере.
  5. Сохранить, скажем, Controller.xib.
  6. В вашем коде инициализируйте контроллер, используя initWithNibName:@"Controller" bundle:nil. Код инициализации должен загрузить интерфейс для вас и установить в качестве свойства представления представление, распакованное из файла интерфейса.

Пройдите некоторое руководство по Interface Builder, IB - очень хороший инструмент, и с ним приятно ознакомиться.

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