Раскадровка iPhone IOS5, как загрузить UIViewController с пользовательским файлом .xib? - PullRequest
17 голосов
/ 03 января 2012

У меня есть несколько UIViewControllers из моего старого проекта iOS4, они используют .xib, созданный в конструкторе интерфейсов.

Мой новый проект, созданный для iOS5, использует раскадровки.

Я пытаюсь добавить UIViewController в раскадровку, но пусть он использует пользовательский XIB, который у меня уже есть .Я установил идентификацию контроллера в инспекторе (в конструкторе интерфейсов), но не уверен , как попросить этот контроллер загрузить пользовательский файл .xib.

Любая помощь приветствуется!

PS.На сегодняшний день я смог обойти это, создав класс «обертка» для раскадровки, и у этого класса был еще один UIViewController.Но это своего рода побеждает весь смысл раскадровки.

Ответы [ 3 ]

19 голосов
/ 03 января 2012

Вы можете скопировать содержимое xib в раскадровку, а затем создать его с помощью:

- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier

после установки идентификатора.Если вам нужен экземпляр раскадровки, вы можете получить его следующим образом:

[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
1 голос
/ 03 апреля 2012

Майк К ответ неверен.

Хотя смешивание XIB и раскадровок на самом деле не решает проблему Алекса, вполне возможно сделать в одном и том же проекте.

См .: https://stackoverflow.com/a/8516479/1309238 re: загрузка второй раскадровки.

Я не уверен, целесообразно ли включать «Основную раскадровку» в сводку целей, если вы планируете это сделать, но если вы сначала загрузили XIB вместо раскадровки, вы можете изменить связанный код выше, чтобы загрузить раскадровку после XIB.

Я не уверен, что вы можете прыгнуть в середину раскадровки из XIB, что, возможно, и имел в виду Майк.

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

Вы не можете смешивать xibs и раскадровки в своем проекте - я боюсь, это один из других.

...