使用segues将UIViewControllerembedded到NavigationController中

我有一个viewController是通常 (最经常)通过使用push segue访问。 这个viewController需要被embedded到一个UINavigationController中。 所以通常情况下,这是没有问题的。 push seguepipe理viewController,因此viewController拥有它的UINavigationController。

我的问题是,在less数情况下,我想使用模态segue呈现相同的确切的viewController。 当我这样做的时候,viewController没有embedded到navigationController中。 有没有办法使用segues来做到这一点?

我知道这可以通过创build一个UINavigationController,将rootView设置为viewController,然后以模态方式呈现,完全在没有segues的代码中完成。 这可以使用这样的代码来完成:

MyViewController *viewController = [[MyViewController alloc] init]; UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController]; [self presentModalViewController:navController animated:YES]; 

但是,我怎样才能做到这一点,但使用Segues?

更新


为了进一步的清晰,这里有一些代码来补充我在prepareForSegue方法中如何使用接受的答案。

当使用模态塞格

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue destinationViewController] isEqualToString:@"Modal to MyVC"]) { UINavigationController *nav = [segue destinationViewController]; MyViewController *vc = [nav topViewController]; //setup vc } } 

使用Push Segue时

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue destinationViewController] isEqualToString:@"Push to MyVC"]) { MyViewController *vc = [segue destinationViewController]; //setup vc } } 

在Storyboard中,可以通过selectView Controller然后从顶部的Editor->Embed In->Navigation Controller菜单中selectViewController,将ViewControllerembedded到Editor->Embed In->Navigation Controller 。 在另一个视图控制器中,您可以控制拖动到此导航控制器来设置modal轮廓。 您也可以控制拖动到原始的视图控制器,以设置没有导航控制器的塞格。

显示一个视图控制器都嵌入在导航控制器中,而不是