更新UINavigationBar标题

时间:2012-02-26 16:35:12

标签: iphone objective-c ios uinavigationcontroller uinavigationbar

左侧有一个拆分视图控制器和一个导航控制器。当视图被推送到导航控制器时,我正在尝试更改导航栏标题。问题似乎是文本只能在viewWillAppear中更新。如果我尝试在初始加载后更改文本,则不会更新。起初我以为我需要在NavigationItem上调用setNeedsDisplay,但它没有属性。我不明白,因为相同的代码在viewWillAppear中有效,但在视图显示后却没有。

我正在使用:

(void)viewWillAppear:(BOOL)animated{
        self.title = @"blah";
        ...
}

3 个答案:

答案 0 :(得分:2)

应为self.navigationItem.title = @"Some Title";

答案 1 :(得分:0)

我已经设置了一个简单的项目,其中初始控制器嵌入在导航控制器中,第二个控制器被推入导航堆栈。第二个控制器有一个按钮,可以调用这段代码:

- (IBAction)changeTitle:(id)sender {

    static unsigned int i = 1;

    self.navigationItem.title = [NSString stringWithFormat:@"Number of changes: %ud", i];

    i++;

}

按预期工作。显然它发生在所有出现/布局事件之后。所以你的问题就在别的地方。也许你所指的self是一个错误的控制者。

答案 2 :(得分:-3)

self.navigationBar.topItem.title = [NSString stringWithFormat:@“TOP”];