Уволить и открыть контроллер представления
Я хочу вернуться на два уровня в моем стеке контроллеров представления. У меня есть три segues в этом порядке: Показать, Показать, Представить Модально. Используется навигационный контроллер. С моего 4-го вида я хочу вернуться ко 2-му виду. Я пытался использовать self.presentingViewController?.presentingViewController?.navigationController?.popViewControllerAnimated(false);
а также
self.presentingViewController?.presentingViewController?.dismissViewControllerAnimated(false, completion: nil);
Второй работает только в том случае, если 2-й и 3-й сегменты обозначаются как "Представить модально". Как я могу заставить их работать с увольнением и популярностью?
4 ответа
Попробуйте отклонить представленный контроллер представления прежде, чем выдвинуть другие два:
func dismissThenDoublePop() {
// Get the presenting/previous view
let previousView = self.presentingViewController as UINavigationController
// Dismiss the current view controller then pop the others
// upon completion
self.dismissViewControllerAnimated(true, completion: {
// Get an array of the current view controllers on your nav stack
let viewControllers: [UIViewController] = previousView.viewControllers as [UIViewController];
// Then either pop two view controllers, i.e. pop
// to viewControllers[viewControllers.count - 2], or
// pop to the second view controller in the nav stack,
// i.e. viewControllers[1]. (In this case I've used the
// first option.)
self.navigationController!.popToViewController(viewControllers[viewControllers.count - 2], animated: true);
});
}
Вы можете использовать эту технику
/questions/24854173/dlya-chego-nuzhnyi-segmentyi-unwind-i-kak-vyi-ih-ispolzuete/24854174#24854174
Просто и чисто (размотать сегу)
@IBAction func unwindAction(segue: UIStoryboardSegue) {
}
Вы используете как этот.
self.navigationController?.popViewControllerAnimated(true)
Просто вызовите dismissViewControllerAnimated. Он автоматически отклонит все контроллеры представления, включая представленную модель viewcontroller.
Цель - С
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
стриж
self.navigationController?.dismissViewControllerAnimated(false, completion: nil);