2

UIAppearance を使用して、アプリ全体で UINavigation バーのタイトルのフォントを設定しています。

アピアランス フォントを設定しないと、予想どおりタイトルがすぐに表示され、プレゼンテーションはアニメーション化されません。

ただし、UIAppearance を使用して代替フォントを指定すると、タイトルは (指定されたフォントで) 表示されますが、iOS 5 での読み込み時に何らかのアニメーション遷移を使用して表示されます。 . タブを離してもう一度戻ると、タイトルが正しく表示されます。

この問題は iOS 5 でのみ見られ、フォントを使用してタイトルを設定すると、iOS 6 で正しく動作します。

この問題は、iOS 5 のシミュレーターでも見られ、シミュレーターの iOS 6 でも正しく動作します。

次のように、AppDelegate で外観を設定します...

[[UINavigationBar appearance] setTitleTextAttributes:
    [NSDictionary dictionaryWithObjectsAndKeys:
        [UIFont fontWithName:FONT_OF_ALL_KNOWLEDGE size:0.0f], UITextAttributeFont,
            nil]];

バーのタイトルは、[タブ付き] ビューごとに viewDidLoad で設定されます。

- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.navigationItem setTitle:@"Title"];
}

他の誰かがこの問題を見たことがありますか?修正はありますか? ありがとう。

アップデート

UIAppearance を使用するのではなく、viewDidLoad (タイトルを設定する直前) で明示的にフォントを設定しようとしましたが、それでも同じ問題が発生し、iOS 5 でのみ発生します。

4

3 に答える 3

0

次のコードを使用します。

[[UINavigationBar appearance] setTitleTextAttributes:
[NSDictionary dictionaryWithObjectsAndKeys:
    [UIFont fontWithName:FONT_OF_ALL_KNOWLEDGE size:0.0f], UITextAttributeFont,
        nil]];
// Present a temp UIViewController 
UIViewController *vc = [[UIViewController alloc]init];
[self presentViewController:vc animated:NO completion:nil];//"self" is an instance of UIViewController
[vc dismissViewControllerAnimated:NO completion:nil];

うまくいかないようですが、うまくいきます!

于 2013-05-27T07:31:04.710 に答える