UITabBarController 内视图控制器的不同导航栏按钮/标题

Posted

技术标签:

【中文标题】UITabBarController 内视图控制器的不同导航栏按钮/标题【英文标题】:Different UINavigatonBar buttons/title for viewcontrollers inside UITabBarController 【发布时间】:2015-04-01 17:20:26 【问题描述】:

我正在开发一个应用程序,该应用程序利用当前嵌入在 UINavigationController 中的 UITabBarController(带有 3 个子视图控制器)。

我希望每个子 vc 在其导航栏上显示不同的内容(不同的标题视图、按钮等),类似于 yik yak 的界面(这些 vc 也在标签栏控制器中):

现在,导航栏在切换选项卡之间无法正常工作,而是每次我在选项卡之间切换时,呈现的视图控制器导航栏设置会覆盖前一个(如果尚未设置)。如果有,它只会显示当前的导航栏设置。

抽象地说,我的应用结构是这样的:

UINavigationController -> UITabBarController -> UIViewController #1
                                             -> UIViewController #2
                                             -> UIViewController #3

我在viewDidLoad中设置每个视图控制器的导航栏设置

例子:

- (void)viewDidLoad     
self.tabBarController.navigationItem.titleView = _segmentedControl;
self.tabBarController.navigationItem.titleView.tintColor = FlatBlue;

我应该改变什么来获得这种预期的效果?在不同的地方设置导航栏设置?将每个子 vc 嵌入另一个 uinavigationcontroller 中?

希望得到一些帮助,在任何地方都找不到任何资源!

谢谢

【问题讨论】:

在 ViewWillAppear 中设置它们。从技术上讲,您在 viewDidLoad 中还没有导航栏 【参考方案1】:

如 cmets 中所述,解决方案是从以下位置切换导航栏设置和逻辑:

viewDidLoad

viewWillAppear

【讨论】:

以上是关于UITabBarController 内视图控制器的不同导航栏按钮/标题的主要内容,如果未能解决你的问题,请参考以下文章

在 UITabBarController 中的两个子视图控制器之间转换

UITabBarController - 如何访问视图控制器?

将另一个视图控制器推送到 UITabBarController 视图中

更新 UITabBarController 的所有视图控制器

在 UITabBarController 的横向强制特定视图控制器

在 UITabbarController 中设置视图控制器的委托