Как мне изменить "initwithNibName" в раскадровке? - PullRequest
55 голосов
/ 13 января 2012

Я хочу изменить приведенный ниже код с раскадровкой с Xcode 4.2.

UIViewController * example     = [[ExampleViewController alloc] initWithNibName:@"ExampleViewController" bundle:nil];

Теперь файл ExampleViewController.xib существует. но я хочу сделать это с раскадровкой. Помогите мне, пожалуйста. (Я плохо разбираюсь в английском. Извините)

Ответы [ 2 ]

132 голосов
/ 13 января 2012

Класс UIStoryboard - ваш друг:

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"mystoryboard"
                                              bundle:nil];
UIViewController* vc = [sb instantiateViewControllerWithIdentifier:@"ExampleViewController"];
8 голосов
/ 13 января 2012
  • Если он все еще находится в собственном xib-файле, вы ничего не меняете.
  • Если вы переместили все в раскадровку, вам не нужно будет делать это часто, так как вы будете связывать контроллеры представления с помощью сегментов.

Если ни одно из вышеперечисленного не соответствует действительности, т. Е. Ваш контроллер представления находится на раскадровке, но к нему не подключен segue, тогда вам нужен метод instantiateViewControllerWithIdentifier: UIStoryboard, описанный в документации . Вы должны установить идентификатор в раскадровке, чтобы это работало.

...