iPhone:设置导航栏标题
大家好。 对于iPhone开发,我还是一个相当新的东西,而且我在查找如何更改导航栏的标题时遇到了一些麻烦。 关于这个网站的另一个问题有人推荐使用:
viewController.title = @"title text";
但是这不适合我…我需要添加一个UINavigationController来完成这个? 或者,也许只是从我的UIViewController子类的sockets? 如果有帮助,我在IB中定义了导航栏,我试图在我的UIViewController子类中设置它的标题。 这是另一个让我头疼的简单事情。 把self.title = @“title text”; 在viewDidLoad
和initWithNibName
也没有工作。 任何人都知道发生了什么,以及如何让事情发生的权利?
谢谢!
视图控制器必须是某个UINavigationController的子项才能使.title
属性生效。 如果UINavigationBar只是一个视图,则需要按下包含标题的导航项目,或者修改最后一个导航项目:
UINavigationItem* item = [[UINavigationItem alloc] initWithTitle:@"title text"]; ... [bar pushNavigationItem:item animated:YES]; [item release];
要么
bar.topItem.title = @"title text";
如果你是通过UIViewController
的viewDidLoad
方法中的代码来完成的,你只能添加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" } }