2

次のコードを使用して、UINavigationBarのタイトルフォントのプロパティを変更する方法を知っています。

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

ただし、この方法でフォントサイズを変更すると、上記のコードを実装しているビューだけでなく、すべてのビューに影響することがわかりました。問題は、タイトルが長い2つのビューのサイズを変更したいということです。その他のビュー(ルートビューを含む)フォントサイズのデフォルト設定を保持したいと思います。上記のコードを使用した方法でフォントサイズを通常に戻そうとしましたviewDidLoadが、機能しません。

特定のビューのタイトルフォントサイズを変更する方法はありますか?ありがとう。

4

1 に答える 1

8

各ViewControllerのviewWillAppear:メソッドでそのコードを呼び出す必要があります。に設定するとviewDidLoad、次のViewControllerのアクションによって設定が上書きされます。また、navigationBarを呼び出しsetNeedsDisplayて更新する必要がある場合もあります(私はそうは思いませんが)。

そのようです:

- (void)viewWillAppear:(BOOL)animated
{
     [super viewWillAppear:animated];
     [self.navigationController.navigationBar setTitleTextAttributes:
          [NSDictionary dictionaryWithObjectsAndKeys:
              [UIFont boldSystemFontOfSize:16.0f],
              UITextAttributeFont,
              nil]];
}
于 2012-11-01T00:22:43.823 に答える