设置UINavigationBar的标题

时间:2012-03-23 14:00:21

标签: objective-c ios uikit uinavigationbar title

是否可以在视图加载后设置self.navigationItem.title = @"MyTitle";

我正在使用搜索栏,在同一视图中,我使用搜索结果提供UITableView。所以我想在搜索结果加载后将搜索栏的文本值设置为导航栏的标题。

我正在使用iOS 4.3。

7 个答案:

答案 0 :(得分:15)

只需设置UINavigationBar的标题:

navBar.topItem.title = @"sample string";

答案 1 :(得分:2)

找到解决方案。我跟着Pedro Valentini's post

这就是我所做的,

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 120, 30)];
label.textAlignment = UITextAlignmentCenter;
[label setFont:[UIFont boldSystemFontOfSize:16.0]];
[label setBackgroundColor:[UIColor clearColor]];
[label setTextColor:[UIColor whiteColor]];
[label setText:text];
[self.navigationController.navigationBar.topItem setTitleView:label];
[label release]; 

答案 2 :(得分:2)

通常,titleView将是一个UILabel,因此您可以获取它,投射它并设置其文本。

出于某种原因,我在viewDidLoad中使用此功能时出现问题,将其添加到viewWillAppear似乎可以解决问题。

((UILabel *)self.navigationController.navigationBar.topItem.titleView).text = @"your title here"

答案 3 :(得分:1)

是。您可以在UIViewController的生命周期的任何部分期间动态设置navigationItem的标题。 set操作由getter方法处理,该方法向UINavigationController发送消息以上传导航栏的视图内容以反映新标题。

答案 4 :(得分:0)

如果自我位于UINavigationController的“内部”,那应该有用。

答案 5 :(得分:0)

_navBar = [[UINavigationBar alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
_navBar.autoresizingMask = UIViewAutoresizingFlexibleWidth;
UINavigationItem *navItem = [UINavigationItem alloc];
navItem.title = @"Title";

试试这个。

答案 6 :(得分:0)

    self.navigationItem.title = @"Terms and Conditions";