【问题标题】:How to set the navigation bar title from view controllers inside tabs?如何从选项卡内的视图控制器设置导航栏标题?
【发布时间】:2014-03-23 02:44:55
【问题描述】:

我在导航控制器中嵌入了一个标签栏控制器。 我想从选项卡内的视图控制器中设置导航中的标题。

如果我使用:

self.title = "ABC";

self.tabBarItem.title = "ABC";

底部标签的标题设置为“ABC”,而不是顶部导航栏中的标题。

但是,我只想在导航栏中设置标题,而不是底部的选项卡。

我该怎么做?

【问题讨论】:

  • 为什么选项卡嵌入在导航中?通常每个选项卡都有自己的导航...
  • 可能是糟糕的设计。您应该在标签栏控制器中嵌入导航控制器,而不是相反。
  • @Wain 好问题...我试过了,但是如果我将视图控制器嵌入导航控制器中,并将导航控制器嵌入标签栏控制器中,但它不会显示标签...?还是我错过了什么……?我应该注意我正在使用 SASlideMenu,这可能是通常方法行不通的原因?
  • @duci9y 与我测试的结果相差甚远,SASlideMenu 仅适用于直接导航控制器,而不是通过标签栏控制器...
  • 也许你做错了什么。可以发一些代码或违规场景的截图吗?

标签: ios tabs uinavigationcontroller


【解决方案1】:

您可以使用self.navigationItem.title 进行设置。

self.navigationItem.title=@"ABC";

【讨论】:

  • 如果视图控制器实际上不在导航控制器中,则不能。导航控制器当前将从标签控制器中获取标题。
  • @Wain:我没有得到你的评论??不明白你想说什么?
  • @Optimistic,节省了我 1 小时,谢谢
【解决方案2】:

您必须将 navigationItem 向上传递。

UINavigationController 显示属于其 topViewController 的导航项,即 UITabBarController。

UITabBarController 在其选项卡中显示 navigationItem 标题。所以你需要做的是确保tabBarController的navigationItem是selectedViewController的navigationItem

回顾一下:

UINavigationController title = topViewController.navigationItem.title

UITabBarController tabTitle = selectedViewController.navigationItem.title

UIViewController title = navigationItem.title

【讨论】:

  • 解决方法是:UITabBarController *tabController = (UITabBarController *)self.parentViewController; tabController.navigationItem.title = @"ABC";
【解决方案3】:

您可能使用了错误的元素,请尝试以下示例:

self.tabBarController.title = @"YOUR_TITLE";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-02
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多