为选择视图更改UINavigationBar字体SIze

时间:2012-10-31 23:24:42

标签: iphone ios uinavigationcontroller

我知道如何使用以下代码更改UINavigationBar的标题字体属性:

[self.navigationController.navigationBar setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIFont boldSystemFontOfSize:16.0f], UITextAttributeFont, nil]];

但是,我发现当我以这种方式更改字体大小时,它会影响所有视图,而不仅仅是我实现上述代码的视图。问题是,我想改变只有2个具有长标题的视图的大小。其他视图(包括根视图)我希望保留字体大小的默认设置。我尝试使用上面的代码在viewDidLoad方法中将字体大小更改回正常,但它不起作用。

有没有办法更改某些视图的标题字体大小?感谢。

1 个答案:

答案 0 :(得分:8)

您应该在每个视图控制器的viewWillAppear:方法中调用该代码。在viewDidLoad中设置时,设置会被下一个视图控制器的操作覆盖。您可能还需要在navigationBar上调用setNeedsDisplay来刷新它(尽管我不相信)。

像这样:

- (void)viewWillAppear:(BOOL)animated
{
     [super viewWillAppear:animated];
     [self.navigationController.navigationBar setTitleTextAttributes:
          [NSDictionary dictionaryWithObjectsAndKeys:
              [UIFont boldSystemFontOfSize:16.0f],
              UITextAttributeFont,
              nil]];
}