Как создать макет UIViewController в раскадровке, а затем использовать его в коде?
У меня есть раскадровка в моем приложении iOS 5.
Там я создал несколько экранов и отлично работает.
Однако есть один контроллер представления, который я создаю в коде, а не в результате действия пользовательского интерфейса, но в конце обработки данных. Я хотел бы показать этот контроллер представлений, а затем, как modalViewController, но также настроить его в редакторе раскадровки.
Возможно ли это? Используя наконечники, я сделал это так:
ResultsController *rc = [[ResultsController alloc] initWithNibName:@"ResultsController"
bundle:nil];
[self.navigationController presentModalViewController:rc animated:YES];
[rc release];
Сейчас у меня на самом деле нет файлов nib, поэтому как мне это сделать?
Ответы
Ответ 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)