iPhone:设置导航栏标题

大家好。 对于iPhone开发,我还是一个相当新的东西,而且我在查找如何更改导航栏的标题时遇到了一些麻烦。 关于这个网站的另一个问题有人推荐使用:

viewController.title = @"title text"; 

但是这不适合我…我需要添加一个UINavigationController来完成这个? 或者,也许只是从我的UIViewController子类的sockets? 如果有帮助,我在IB中定义了导航栏,我试图在我的UIViewController子类中设置它的标题。 这是另一个让我头疼的简单事情。 把self.title = @“title text”; 在viewDidLoadinitWithNibName也没有工作。 任何人都知道发生了什么,以及如何让事情发生的权利?

谢谢!

视图控制器必须是某个UINavigationController的子项才能使.title属性生效。 如果UINavigationBar只是一个视图,则需要按下包含标题的导航项目,或者修改最后一个导航项目:

 UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release]; 

要么

 bar.topItem.title = @"title text"; 

如果你是通过UIViewControllerviewDidLoad方法中的代码来完成的,你只能添加self.title = @"title text";

像这样的东西:

 - (void)viewDidLoad { [super viewDidLoad]; self.title = @"title"; } 

你也可以试试self.navigationItem.title = @"title";

还要检查你的navigationItem是不是null,如果你已经设置了导航栏的自定义背景,检查是否没有它的标题。

有一个使用self.title = @"title";

如果您正在使用导航栏和选项卡栏,上面的行也会更改选项卡栏项的标签。 为了避免这种情况,请使用@testingbuild议的

 self.navigationItem.title = @"MyTitle"; 

如果你想改变导航栏标题(不导航栏后退button标题!)这个代码将工作。

 self.navigationController.topViewController.title = @"info"; 

如果要更改tabBar控制器内的navBar标题,请执行以下操作:

 -(void)viewDidAppear:(BOOL)animated { self.navigationController.navigationBar.topItem.title = @"myTitle"; } 

在我的导航的应用程序,我这样做:

 myViewController.navigationItem.title = @"MyTitle"; 

我有一个导航控制器集成在一个TabbarController。 这工作

 self.navigationItem.title=@"title"; 

导航控制器默认显示“topitem”的标题,

所以你可以在你的appdelegate的viewdidload方法中使用。 我testing了它,它工作

 navController.navigationBar.topItem.title = @"Test"; 
 UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release]; 

此代码工作。

如果您正在使用Storyboard,则可以单击控制器,切换到“属性”选项卡,然后在其中设置标题文本。

我想你需要一个dynamic的标题,这就是为什么你不把它设置在IB。

我认为你的viewController对象是在NIB中指定的对象?

也许尝试在IB中设置它为虚拟值,然后debugging方法,看看哪个控制器有虚拟值 – 假设它显示为标题…

从你的TableViewController.m中:

self.navigationController.navigationBar.topItem.title = @“Blah blah Some Amazing title”;

对于你们所有的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" } }