gpt4 book ai didi

ios - 使用 segues 将 UIViewController 嵌入到 NavigationController 中

转载 作者:行者123 更新时间:2023-11-30 11:35:38 26 4
gpt4 key购买 nike

我有一个 viewController,通常(大多数情况下)通过使用推送转场来访问。该 viewController 需要嵌入到 UINavigationController 中。所以通常来说,这没有问题。推送segue管理推送viewController,因此viewController有它的UINavigationController。

我的问题是,在某些情况下,我想使用模态转场来呈现完全相同的 viewController。当我这样做时,viewController 没有嵌入到 navigationController 中。有没有办法使用 segues 来做到这一点?

我知道这可以通过创建 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中,您可以通过选择 View Controller ,然后从顶部的编辑器->嵌入->导航 Controller 菜单中进行选择,将 View Controller 嵌入到导航 Controller 中。从另一个 View Controller ,您可以控制拖动到此导航 Controller 以设置modal segue。您还可以控制拖动到原始 View Controller 以设置到它的segues,而无需导航 Controller 。

Storyboard showing a view controller both embedded in a navigation controller and not

关于ios - 使用 segues 将 UIViewController 嵌入到 NavigationController 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49816551/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com