无法在导航栏上添加导航项

Posted

技术标签:

【中文标题】无法在导航栏上添加导航项【英文标题】:Unable to add Navigation Items on Navigation bar 【发布时间】:2014-12-25 11:05:38 【问题描述】:

我使用了导航控制器,在我的应用程序中的 TAbbar 控制器中,我面临的问题是我无法将导航栏项添加到特定控制器的导航栏中

当我这样做时

self.navigationCOntroller.navigationItem.rightBarButtonItem=aBArButtonItem;

什么都不显示

当我这样做时

self.tabController.navigationController.navigationItem.rightBArButtonItem=aBArButtonItem

然后将相同的项目添加到 Tabbarcontroller 中的所有 viewCONtrollers 中,我想在不同的控制器上显示不同的栏按钮项目,有什么想法可以实现吗??

【问题讨论】:

self.navigationController != nil 吗? 不,它不是零,导航控制器存在且可见 【参考方案1】:

我终于弄明白了,我无法添加任何导航项,因为 TabbarCONtroller 是容器视图,下面的代码帮助了我

  self.tabBarController.navigationItem.rightBarButtonItem=right;

我还必须在第二个 ViewCONtroller 中重写此代码

  self.tabBarController.navigationItem.rightBarButtonItem=nil;

只有这样我才能在导航栏中添加和响应 NavigationItems

【讨论】:

【参考方案2】:

试试self.navigationItem.rightBarButtonItem=aBArButtonItem;,而不是self.navigationController.navigationItem.rightBarButtonItem=aBArButtonItem;。这样您就可以从视图控制器访问navigationItem,而不是从整个导航控制器

【讨论】:

【参考方案3】:

您感兴趣的navigationItem 是您的viewController 的属性,而不是navigationControllertabBarController

所以如果你尝试:

self.navigationItem.rightBarButtonItem = aBArButtonItem;

你会取得更大的成功!

【讨论】:

【参考方案4】:

试试下面的code

UINavigationController * navController = [[self.tabBarController viewControllers]objectAtIndex:[self.tabBarController selectedIndex]];
    navController.navigationItem.rightBarButtonItem = aBarButtonItem

【讨论】:

以上是关于无法在导航栏上添加导航项的主要内容,如果未能解决你的问题,请参考以下文章

导航栏上的菜单项和导航栏左侧的公司图标

不会将导航项添加到 xcode 中的导航栏

无法更改导航项后退按钮的文本

导航栏上没有后退按钮

如何在操作栏上添加下拉项

导航栏上超过 1 个 rightBarButtonItem