gpt4 book ai didi

iOS NavigationCotroller pushViewController 使用 UITabBarViewController 初始化时

转载 作者:行者123 更新时间:2023-11-29 13:15:14 24 4
gpt4 key购买 nike

我的主 viewController A 有一个 UITabbarViewController,它有 5 个选项卡。

  • 在 View Controller A 上,我设置了 [self.navigationController setNavigationBarHidden:YES] 用于我的应用程序的某些用途。

  • 在选项卡 2 的 viewController 上,我有一个表格 View ,我希望当我选择一行表格时,我将显示一个 viewController B(还有导航栏和选项卡栏)

    • 我尝试了 [self.navigationController pushViewCOntroller:B animated:YES] 但它不起作用。我认为是因为为 navigationBar 设置了隐藏
    • 我也试过[self presentModalViewController:B],它工作但是在viewcontroller B上,它显示全屏(navigationBar和tabbar消失了)

谁能帮帮我?提前致谢

最佳答案

怎么样

                         tabBarController
|
|
|-->Item1ViewController
|
|-->NavController->Item2ViewController->push->VCB
|
|-->Item3ViewController
|

只要确保 tabBarController 没有包含在 NavigationController 中,这会造成混淆。

您可以选择显示/隐藏 Item2ViewController 和 VCB 上的导航栏,方法是设置它们各自的属性。

如果使用 Storyboard,您可以在使用菜单项“嵌入...”设置 tabBarController 后将 Item2ViewController 嵌入 NavContoller。

如果在代码中你可以做这样的事情:

    UIViewController* vc1 = [[UIViewController alloc] init];
UIViewController* vc2 = [[UIViewController alloc] init];
UIViewController* vc3 = [[UIViewController alloc] init];
UIViewController* vc4 = [[UIViewController alloc] init];
UIViewController* vc5 = [[UIViewController alloc] init];
UINavigationController* navC =
[[UINavigationController alloc] initWithRootViewController:vc2];
NSArray* viewControllers = @[vc1,navC,vc3,vc4,vc5];
UITabBarController* tabC = [[UITabBarController alloc] init];
tabC.viewControllers = viewControllers;
[self presentViewController:tabC animated:YES completion:nil];

// don't do this:
// [self.view addSubview:tabC.view];

(“呈现”部分值得商榷,它实际上取决于应用程序结构的其余部分)。

关于iOS NavigationCotroller pushViewController 使用 UITabBarViewController 初始化时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15997519/

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