是否可以在视图加载后设置self.navigationItem.title = @"MyTitle";
?
我正在使用搜索栏,在同一视图中,我使用搜索结果提供UITableView。所以我想在搜索结果加载后将搜索栏的文本值设置为导航栏的标题。
我正在使用iOS 4.3。
答案 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";