Question: I have 3 navigation controllers. Each with many view controllers.

* **1** `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

* **1** `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!

Answer: 
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…

[![enter image description here](https://i.stack.imgur.com/et0Asm.png)](https://i.stack.imgur.com/et0Asm.png)

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.
this code will pop a navigation controller with all view controllers in it

```
// pop root view controller
UIViewController *rootViewController = [self.navigationController viewControllers][0];
[rootViewController dismissViewControllerAnimated:YES completion:nil];

```

so you can do something like this:

```
// pop navigationController3 without animation
UIViewController *rootViewController3 = [navigationController3 viewControllers][0];
[rootViewController3 dismissViewControllerAnimated:NO completion:nil];

// pop navigationController2 with animation
UIViewController *rootViewController2 = [navigationController2 viewControllers][0];
[rootViewController2 dismissViewControllerAnimated:YES completion:nil];

```