Ios: как отклонить диспетчер модального представления, а затем выталкивать нажатый контроллер вида

У меня есть контроллер B представления, который выталкивается в стек навигации контроллером корневого представления A, и этому контроллеру просмотра B необходимо отобразить альтернативный вид, если его модель находится в определенном состоянии, так что она представляет собой внешний контроллер C. Когда я отклоняю диспетчер представлений, CI также хотел бы поп-просмотр контроллера B, если он также находится в стеке nav. Я хотел бы сделать это таким образом, что есть только 1 переход.

Любые идеи?

Ответ 1

В сценарии, который вы опубликовали, контроллер представления представления для контроллера C представления будет фактически навигационным контроллером, поэтому вы можете попросить его выскочить B, а затем убрать себя. Этот код находится в виду контроллера C:

-(IBAction)goBackToA:(id)sender {
    [(UINavigationController *)self.presentingViewController  popViewControllerAnimated:NO];
    [self dismissViewControllerAnimated:YES completion:nil];
}

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