viewController.title = @"title text";
但这对我不起作用...我是否需要添加UINavigationController才能完成此任务?或者也许只是我的UIViewController子类的一个插座?如果它有帮助,我在IB中定义了导航栏,我试图在我的UIViewController子类中设置它的标题。这是另一个让我头疼的简单事情。把self.title = @“title text”;在viewDidLoad
和initWithNibName
中也没有效果。有人知道发生了什么以及如何让它发生正确吗?
谢谢!
答案 0 :(得分:153)
视图控制器必须是某个UINavigationController的子级才能使.title
属性生效。如果UINavigationBar只是一个视图,则需要按下包含标题的导航项,或修改最后一个导航项:
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
...
[bar pushNavigationItem:item animated:YES];
[item release];
或
bar.topItem.title = @"title text";
答案 1 :(得分:121)
如果您使用viewDidLoad
UIViewController
方法中的代码执行此操作,则只应添加self.title = @"title text";
类似的东西:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"title";
}
您也可以尝试self.navigationItem.title = @"title";
还检查您的navigationItem是否为空,如果您已为导航栏设置自定义背景,请检查是否设置了标题。
答案 2 :(得分:32)
使用self.title = @"title";
如果您使用导航栏和标签栏,上面的行也会更改标签栏项目的标签。为避免这种情况,请使用@testing建议的
self.navigationItem.title = @"MyTitle";
答案 3 :(得分:12)
如果您想更改导航栏标题(而不是导航栏后退按钮标题!),此代码将起作用。
self.navigationController.topViewController.title = @"info";
答案 4 :(得分:9)
如果要在tabBar控制器中更改navBar的标题,请执行以下操作:
-(void)viewDidAppear:(BOOL)animated {
self.navigationController.navigationBar.topItem.title = @"myTitle";
}
答案 5 :(得分:5)
在我的导航应用中,我这样做:
myViewController.navigationItem.title = @"MyTitle";
答案 6 :(得分:4)
默认情况下,导航控制器会显示“topitem”的标题
所以在appdelegate的viewdidload方法中你可以。我测试了它,它的工作原理
navController.navigationBar.topItem.title = @"Test";
答案 7 :(得分:4)
我在TabbarController中集成了导航控制器。这工作
self.navigationItem.title=@"title";
答案 8 :(得分:2)
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"];
...
[bar pushNavigationItem:item animated:YES];
[item release];
此代码有效。
答案 9 :(得分:2)
如果您正在使用Storyboards,可以单击控制器,切换到属性选项卡,然后在那里设置标题文本。
答案 10 :(得分:1)
我猜你需要一个动态标题,这就是为什么你不在IB中设置它。
我认为你的viewController对象是NIB中指定的那个?
也许尝试将其设置为IB中的虚拟值,然后调试方法以查看哪个控制器具有虚拟值 - 假设它显示为标题...
答案 11 :(得分:1)
从TableViewController.m中 :
self.navigationController.navigationBar.topItem.title = @" Blah blah一些惊人的标题&#34 ;;
答案 12 :(得分:1)
对于你们所有的Swift-ers,这对我来说非常合适。它也是完成标题设置的较短方式之一:
override public func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "presentLineItem" {
print("Setting Title")
var vc = segue.destinationViewController as! LineItemsTableViewController
vc.navigationItem.title = "Line Item"
}
}
答案 13 :(得分:0)
对我有用的是self.titleLabel.text = @"New Title";