I have 3 navigation controllers. Each with many view controllers.
NavigationController (modal Segue)
-> 2 NavigationController (model Segue)
-> 3 NavigationController
Now, how do you go from #3 NavigationController back to #1 NavigationController that I have been before? So I want
NavigationController (modal Segue)
-> 2 NavigationController (model Segue)
-> 3 NavigationController
(HOW???)-> 1 NavigationController
(To clarify, I would not want to go to a new 1 NavigationController
. I want to go to the one that I used before.)
Help!
If you just want to dismiss the whole stack of 3 NavigationController
, you can call this within any view controller in the 3
Objective C
[self.navigationController dismissViewControllerAnimated:YES completion:nil]
Swift 3, 4
self.navigationController?.dismiss(animated: true)
This will bring you back to the status before (model Segue)->
3 NavigationController
.
Maybe you can somehow call this in 2 before calling this in 3?
[[self navigationController] popViewControllerAnimated:YES];
In a view controller in navigationController1
's stack, create an unwind @IBAction
method:
Swift
@IBAction func unwindToMyViewController(_ segue: UIStoryboardSegue)
Objective-C
- (IBAction)unwindToMyViewController:(UIStoryboardSegue *)segue
In your storyboard, you can then hook up an unwind segue from a button in a view controller that is in the stack of navigationController3
, by dragging from the button to the exit icon…
from there, select the unwind segue created above. When triggered, the segue will unwind ALL view controllers back to the view controller containing the unwind segue.
Use that:
[self.**presentingViewController** dismissViewControllerAnimated:YES completion:nil];
instead of:
[self dismissViewControllerAnimated:YES completion:nil];
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With