Подтвердить что ты не робот

Как создать макет UIViewController в раскадровке, а затем использовать его в коде?

У меня есть раскадровка в моем приложении iOS 5.

Там я создал несколько экранов и отлично работает.

Однако есть один контроллер представления, который я создаю в коде, а не в результате действия пользовательского интерфейса, но в конце обработки данных. Я хотел бы показать этот контроллер представлений, а затем, как modalViewController, но также настроить его в редакторе раскадровки.

Возможно ли это? Используя наконечники, я сделал это так:

ResultsController *rc = [[ResultsController alloc] initWithNibName:@"ResultsController"
                                                            bundle:nil];
[self.navigationController presentModalViewController:rc animated:YES];
[rc release];

Сейчас у меня на самом деле нет файлов nib, поэтому как мне это сделать?

4b9b3361

Ответ 1

Взгляните на класс UIStoryboard. Существует метод instantiateViewControllerWithIdentifier. Поэтому вам нужно установить Identfier в редакторе раскадровки для вашего монитора результатов ViewController.

Вы можете сделать что-то вроде этого

UIViewController *viewController = 
   [[UIStoryboard storyboardWithName:@"MainStoryboard" 
                              bundle:NULL] instantiateViewControllerWithIdentifier:@"ResultsController"];

[self presentModalViewController:viewController animated:NO];

Ответ 2

В раскадровке:

  • Добавить общий UIViewController.
  • С помощью Identity Inspector установите свой пользовательский класс как ваш контролер результатов.
  • Создайте modal segue из вашего контроллера исходного вида в ResultsController

Ответ 3

Для Swift 4

let viewController = UIStoryboard.init(name: "MainStoryboard", bundle: nil).instantiateViewController(withIdentifier: "ResultsController")
self.present(viewController, animated: true, completion: nil)