hat*_*ike 17 uinavigationcontroller ios uistoryboard uistoryboardsegue
我有一个viewController,通常(通常)使用push segue访问.这个viewController需要嵌入UINavigationController中.通常,这不是问题.push segue管理推送viewController,因此viewController有它的UINavigationController.
我的问题是,在少数情况下,我想使用模态segue呈现这个相同的viewController.当我这样做时,viewController没有嵌入到navigationController中.有没有办法用segues做到这一点?
我知道这可以通过创建UINavigationController纯粹在没有segue的代码中完成,将rootView设置为viewController,然后以模态方式呈现.这可以使用这样的代码完成:
MyViewController *viewController = [[MyViewController alloc] init];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
[self presentModalViewController:navController animated:YES];
Run Code Online (Sandbox Code Playgroud)
但是我如何使用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
}
}
Run Code Online (Sandbox Code Playgroud)
使用Push Segue时
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isEqualToString:@"Push to MyVC"])
{
MyViewController *vc = [segue destinationViewController];
//setup vc
}
}
Run Code Online (Sandbox Code Playgroud)
vac*_*ama 29
在Storyboard中,您可以通过选择View Controller然后从顶部的菜单中选择,将ViewController嵌入到导航控制器中Editor->Embed In->Navigation Controller.从另一个视图控制器,您可以控制拖动到此导航控制器以设置modalsegue.您还可以控制拖动到原始视图控制器,以便在没有导航控制器的情况下为其设置segue.

| 归档时间: |
|
| 查看次数: |
20368 次 |
| 最近记录: |