为选择视图更改UINavigationBar字体SIze

Kev*_*_TA 2 iphone uinavigationcontroller ios

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

[self.navigationController.navigationBar setTitleTextAttributes:
 [NSDictionary dictionaryWithObjectsAndKeys:
  [UIFont boldSystemFontOfSize:16.0f], UITextAttributeFont, nil]];
Run Code Online (Sandbox Code Playgroud)

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

有没有办法改变某些视图的标题字体大小?谢谢.

Dan*_*tay 8

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

像这样:

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