gpt4 book ai didi

ios - 在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?

转载 作者:行者123 更新时间:2023-11-29 12:58:37 27 4
gpt4 key购买 nike

我的应用程序的整个导航系统都是围绕导航 Controller 构建的。我所有的风险投资公司都被插入和推出。我有一个从左侧出来的菜单系统“抽屉”,它是我的自定义导航 Controller 的一部分。在菜单中,我可以访问应用程序的多个区域。其中一些区域导致需要 TabBarController。当我到达那个 TabBarController 时,它有 2-4 个选项卡,每个选项卡都是自己的 VC。这些选项卡中的每一个上都有可以按下的内容,这将导致将新页面推送到导航 Controller 上。

我知道您应该将导航 Controller 嵌入到 TabBarController 中,但是当我的整个应用程序都基于导航 Controller 且某些页面包含 TabBarController 时,我该怎么做呢?

我曾尝试让我的应用程序作为导航 Controller 启动,然后在标签栏所在的页面上,我将每个选项卡连接到一个新的导航 Controller ,然后该导航 Controller 遍历内容。这样做会在应用程序中添加非常意想不到的问题以及多个标签栏。

设置这样的东西的最佳方法是什么?请记住,我实际上从未以允许您“返回”的方式将 tabbarcontroller 推到我的导航 Controller 上。它们是基本页面,允许用户从中导航。

最佳答案

您似乎混淆了 View Controller 和 View Controller 容器。

TabBar 和 Navigation Bar 是 UIViewController 容器,不像它们拥有的普通 UIviewcontroller将回调/委托(delegate)转发给它们的 subview Controller 的附加功能。 (如 viewDidAppear、shouldAutoRotate 等。)

有什么区别?UIViewController 处理嵌入式 View 的旋转,Container 处理嵌入式 View Controller 的旋转。

这里是 apple's附加信息链接

您似乎是在彼此之上添加 Root View 的 View Controller 。而是使用方法

-(void)addViewController:(UIViewController*)vc toViewController:(UIVIewController*)baseVC{   [vc willMoveToParentViewController:baseVC];   [baseVC addChildViewController:vc];    [baseVC.view addSubview:vc.view];    [vc didMoveToParentViewController:baseVC];}

有了这个,你可以嵌套 UIViewcontroller 直到 n 的深度。不仅有 3 个级别(这是你的情况)

现在在你的上下文中:

[self addViewController:tabBarController toViewController:rootNavigationController];[self addViewController:childnNvigationController toViewController:tabBarController];

关于ios - 在 UINavigationController 内的 UITabBarcontroller 中添加 UINavigationController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364885/

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