大家好 . 我仍然是iPhone开发的新手,我在如何更改导航栏的 Headers 时遇到了一些麻烦 . 关于本网站的另一个问题,有人建议使用:
viewController.title = @"title text";
但是,我试图在我的UIViewController子类中设置它的 Headers 是不是't working for me...Do I need to add a UINavigationController to accomplish this? Or maybe just an outlet from my UIViewController subclass? If it helps, I defined the navigation bar in IB and I' . 这是另一个让我头疼的简单事情 . 把self.title = @ "title text";在 viewDidLoad
和 initWithNibName
没有't work either. Anybody know what'正在发生以及如何让它正确发生?
谢谢!
14 回答
视图控制器必须是某些UINavigationController的子节点才能使
.title
属性生效 . 如果UINavigationBar只是一个视图,则需要按下包含 Headers 的导航项,或者修改最后一个导航项:要么
如果您通过
UIViewController
的viewDidLoad
方法中的代码完成所有操作,则只应添加self.title = @"title text";
像这样的东西:
你也可以试试
self.navigationItem.title = @"title";
还要检查您的navigationItem是否为空,并且如果您已将自定义背景设置为导航栏,请检查是否在没有它的情况下设置了 Headers .
使用
self.title = @"title";
有一个问题如果您使用导航栏和标签栏,则上面的行也会更改标签栏项目的标签 . 为避免这种情况,请使用@testing建议的内容
如果您想更改导航栏 Headers (而不是导航栏后退按钮 Headers !),此代码将起作用 .
如果要在tabBar控制器中更改navBar的 Headers ,请执行以下操作:
在我的导航应用程序中,我这样做:
我有一个集成在TabbarController中的导航控制器 . 这很有效
默认情况下,导航控制器显示“topitem”的 Headers
所以在appdelegate的viewdidload方法中你可以 . 我测试了它,它的工作原理
这段代码有效 .
如果您正在使用Storyboard,可以单击控制器,切换到属性选项卡,然后在那里设置 Headers 文本 .
我想你需要一个动态 Headers ,这就是为什么你不在IB中设置它 .
我假设你的viewController对象是在NIB中指定的对象?
也许尝试将其设置为IB中的虚拟值,然后调试方法以查看哪个控制器具有虚拟值 - 假设它显示为 Headers ...
从TableViewController.m中:
对于你们所有的Swift-ers来说,这对我来说非常合适 . 这也是完成设置 Headers 的简短方法之一:
对我有用的是
self.titleLabel.text = @"New Title";