0

すべてのナビゲーション バーにカスタム イメージを追加するように外観プロトコルを設定しています。これは期待どおりに機能していますが、MFMailComposeViewController のナビゲーション バーの外観を変更したくありません。

このナビゲーション バーをデフォルトのナビゲーション バーにするにはどうすればよいですか?

[[UINavigationBar appearance] setBackgroundImage:[ApplicationStyle navigationBarImage] forBarMetrics:UIBarMetricsDefault];
4

1 に答える 1

1

appearanceプロキシを使用すると、-appearanceWhenContainedIn メソッドを使用して特定のクラスに UI が含まれている場合に、UI の外観を変更できます。以下に示すように、イメージを nil に設定して、MFMailComposeViewController クラスに表示されないようにすることができます。[[UINavigationBar AppearanceWhenContainedIn:[MFMailComposeViewController クラス], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

この質問によると、モーダル MFMailComposeViewController を提示する前後に、外観を元に戻すために外観プロキシを変更する必要があります。

MFMailComposeViewController の UIAppearance プロパティをオーバーライドする

于 2013-07-08T22:32:18.707 に答える