Xcode 4.2 - Хранение представления в отдельном файле Nib - PullRequest
3 голосов
/ 07 ноября 2011

Я пытаюсь создать довольно стандартный пользовательский интерфейс для приложения для iOS - контроллер вкладок с одной из вкладок, на которой установлен контроллер навигации. Навигационный контроллер соединит несколько других видов.

Я хочу добавить отдельные файлы пера так, чтобы весь мой взгляд не находился в основном файле раскадровки (Apple рекомендует сделать это). Я попытался следовать инструкциям здесь: http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/BasicViewControllers/BasicViewControllers.html#//apple_ref/doc/uid/TP40007457-CH101-SW33

К сожалению, я не могу найти атрибут "Nib Name" для моего контроллера представления где-либо в конструкторе интерфейсов. Мне интересно, возможно, это было удалено из Xcode 4.2, поскольку я могу найти информацию об этом в более старой версии Xcode. В любом случае, если кто-нибудь скажет мне, как использовать отдельный файл пера для того, что я делаю, это было бы чрезвычайно полезно. Да, я погуглил все вокруг и пока не нашел ничего, что работает.

Любая помощь очень ценится.

UPDATE:

Я делаю это из раскадровки. Я прикрепил скриншот, показывающий, что я пытаюсь сделать. Перо с видом называется View2.xib. Из моего скриншота видно, что у меня есть только «Заголовок» и «Идентификатор», где должно быть указано «Имя пера»: http://i.stack.imgur.com/yPJse.png

Ответы [ 2 ]

1 голос
/ 09 апреля 2013

Подход, который я использую, заключается в загрузке внешнего пера в качестве подпредставления представления в раскадровке. В viewDidLoad сделайте что-то вроде этого:

- (void)viewDidLoad
{
    [super viewDidLoad];
    nib = [UINib nibWithNibName:@"MyNib" bundle:nil];
    UIView* subview = [[nib instantiateWithOwner:self options:nil] objectAtIndex:0];
    [self.view addSubview:subview];
    [subview setTranslatesAutoresizingMaskIntoConstraints:NO];
    NSDictionary *viewsDict = NSDictionaryOfVariableBindings(subview);
    [self.view addConstraints:[NSLayoutConstraint
               constraintsWithVisualFormat:@"|[subview]|"
               options:0 metrics:nil views:viewsDict]];
    [self.view addConstraints:[NSLayoutConstraint
               constraintsWithVisualFormat:@"V:|[subview]|"
               options:0 metrics:nil views:viewsDict]];

}
1 голос
/ 07 ноября 2011
  • Если вы создаете контроллер представления с использованием кода Objective C, вы передаете имя пера методу -[UIViewController initWithNibName:bundle:] при создании контроллера представления.

  • Если вы помещаете контроллер вида в тот же XIB, что и вид, которым он будет управлять, вам не нужно устанавливать имя пера. Просто подключите выходную панель контроллера вида к виду, которым он будет управлять.

  • Если вы помещаете контроллер вида в какой-либо XIB test.xib и хотите, чтобы он загружал другой XIB other.xib, вы задаете имя пера в Инспекторе атрибутов, пока выбран контроллер представления:

nib name field in IB

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