2012-10-31 30 views
2

我知道如何使用这个代码来改变UINavigationBar的标题字体属性:变化UINavigationBar的字体大小选择视图

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

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

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

回答

8

您应该在每个视图控制器的viewWillAppear:方法中调用该代码。当您将其设置为viewDidLoad时,该设置将被下一个视图控制器的操作覆盖。您可能还需要在导航栏上调用setNeedsDisplay来刷新它(尽管我不这么认为)。

像这样:

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

'viewWillAppear'的伎俩。使用'viewDidAppear'显示文本大小发生变化,因为它正在等待视图完全推送到窗口。谢谢! –

+0

至少在iOS 7上,您可以在'viewDidLoad'方法中实现这一行 – Camus