Ios 如何从选项卡内的视图控制器设置导航栏标题?

Ios 如何从选项卡内的视图控制器设置导航栏标题?,ios,tabs,uinavigationcontroller,Ios,Tabs,Uinavigationcontroller,我在导航控制器中嵌入了一个选项卡栏控制器。 我想从选项卡内的视图控制器设置导航中的标题 如果我使用: self.title = "ABC"; 或 底部选项卡的标题设置为“ABC”,但不是顶部导航栏中的标题 但是,我只想在导航栏中设置标题,而不想在底部设置选项卡 我该怎么做 您可以使用self.navigationItem.title进行设置 self.navigationItem.title=@"ABC"; 您可以使用self.navigationItem.title进行设置 self.na

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

如果我使用:

self.title = "ABC";

底部选项卡的标题设置为“ABC”,但不是顶部导航栏中的标题

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

我该怎么做


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

self.navigationItem.title=@"ABC";

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

self.navigationItem.title=@"ABC";

您必须向上传递导航项

UINavigationController显示属于其topViewController(即UITabBarController)的导航项

UITabBarController在其选项卡中显示navigationItem标题。因此,您需要做的是确保tabBarController的navigationItem是selectedViewController的navigationItem

因此,总结一下:

UINavigationController title = topViewController.navigationItem.title

UITabBarController tabTitle = selectedViewController.navigationItem.title

UIViewController title = navigationItem.title

您必须向上传递导航项

UINavigationController显示属于其topViewController(即UITabBarController)的导航项

UITabBarController在其选项卡中显示navigationItem标题。因此,您需要做的是确保tabBarController的navigationItem是selectedViewController的navigationItem

因此,总结一下:

UINavigationController title = topViewController.navigationItem.title

UITabBarController tabTitle = selectedViewController.navigationItem.title

UIViewController title = navigationItem.title

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

self.tabBarController.title = @"YOUR_TITLE";

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

self.tabBarController.title = @"YOUR_TITLE";


为什么标签嵌入导航中?通常每个标签都有自己的导航…可能是糟糕的设计。您应该在选项卡栏控制器中嵌入导航控制器,而不是相反。@Wain问得好。。。我试过了,但如果我将视图控制器嵌入导航控制器,将导航控制器嵌入选项卡栏控制器,但它不会显示选项卡。。。?还是我错过了什么。。。?我应该注意的是,我使用的是SASlideMenu,这可能是为什么通常的方法不起作用的原因?@duci9y与我测试的情况不同,SASlideMenu只直接与导航控制器一起工作,而不是通过tabbar控制器……也许你做错了什么。你能发布一些代码或是一个冒犯场景的截图吗?为什么标签会嵌入导航中?通常每个标签都有自己的导航…可能是糟糕的设计。您应该在选项卡栏控制器中嵌入导航控制器,而不是相反。@Wain问得好。。。我试过了,但如果我将视图控制器嵌入导航控制器,将导航控制器嵌入选项卡栏控制器,但它不会显示选项卡。。。?还是我错过了什么。。。?我应该注意的是,我使用的是SASlideMenu,这可能是为什么通常的方法不起作用的原因?@duci9y与我测试的情况不同,SASlideMenu只直接与导航控制器一起工作,而不是通过tabbar控制器……也许你做错了什么。你能发布一些代码或是一个令人不快的场景截图吗?如果视图控制器不在导航控制器中,你就不能。导航控制器当前将从选项卡控制器获取标题。@Wain:我没有收到你的评论??不明白你想说什么?@乐观,节省了我的1小时,谢谢如果视图控制器实际上不在导航控制器中,你就不能。导航控制器当前将从选项卡控制器获取标题。@Wain:我没有收到你的评论??不明白你想说什么?@乐观,节省了我1小时,谢谢解决方案是:
UITabBarController*tabController=(UITabBarController*)self.parentViewController;tabController.navigationItem.title=@“ABC”解决方案是:
UITabBarController*tabController=(UITabBarController*)self.parentViewController;tabController.navigationItem.title=@“ABC”