У меня есть навигационный стек, состоящий из:Reference представления вида контроллера от модального (Objective-C)
UINavigationViewController
-> WelcomeViewController
-> RoleViewController
Я хотел бы добавить модальное ViewController между Добром и ролью. Я добавляю ModalViewController через раскадровку и назначаю Segue (Present Modally) в ModalViewController с помощью кнопки в WelcomeViewController. Все хорошо, и модальные шоу прекрасно.
Теперь, когда я нахожусь внутри ModalViewController Я бы хотел (а) отменить modal и выполнить оригинальное segue от Welcome to Role. Я сделал несколько поисков в StackOverflow и пришел к разным соображениям о том, как это сделать. Логичным было изложено здесь: Dismissviewcontroller and perform segue
UIViewController *parentController = self.presentingViewController;
[self dismissViewControllerAnimated:YES completion:^(void){
[parentController performSegueWithIdentifier:@"segue_gotoRole" sender:self];
}];
модальный уволен, но переходить не выполнено и приложение вылетает:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Receiver (<NavigationViewController: 0x78b96b80>) has no segue
with identifier 'segueToRole''
Так self.presentingViewController нацелен на сокращение UINavigationViewController и не контроллер просмотра WelcomeViewController, который фактически представляет модальный. Чтобы преуспеть, мне нужно найти способ получить контроллер представления представления, который определен в раскадровке как создатель segue из модального.
Я пробовал много разных комбинаций, например. self.parentViewController, self.presentationViewController, я даже попытался перебрать стек навигации, чтобы выделить WelcomeViewController и настроить его специально как объект для выполнения segue, но ничего не работает.
Пожалуйста, помогите мне. :)
Представляете ли вы свой контроллер просмотра от контроллера навигации или 'WelcomeViewController'? – ozgur
Модаль выполняется при нажатии кнопки в WelcomeViewController (который встроен в NavigationViewController). –