UIAppearance プロトコルを使用して設定された、アプリのナビゲーション コントローラーにカスタム navBar イメージがあります。ただし、アプリを介して (経由でMFMailComposeViewController
) メールを送信する場合、カスタムの navBar ではなくデフォルトの navBar が必要です。この質問で概説されているアプローチを試しました: UIAppearance Remove Custom NavBar Background for UIPopoverControllerが機能しませんでした。私が使用したコードは次のとおりです。
[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
しかし、それは何の効果もありませんでした。私のアプリは iOS 6 以降です。これは特定のものMFMailComposeViewController
ですか、それとも何か欠けていますか?
編集:他のアプローチが試みられました:
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];
mailer.mailComposeDelegate = self;
mailer.navigationBar.barStyle = UIBarStyleBlack;
[self.navigationController presentViewController:mailer animated:YES completion:nil];
[mailer.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];
UIBarStyleBlack
その後、「キャンセル」ボタンが黒くなりますが、背景画像はまだ古い値に設定されています。