6

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その後、「キャンセル」ボタンが黒くなりますが、背景画像はまだ古い値に設定されています。

4

2 に答える 2

0

カスタム背景画像を削除

[[UINavigationBar appearance] setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

電話する前に、

MFMailComposeViewController *vc = [[MFMailComposeViewController alloc] init];

ポイントは、 の前にナビゲーション バーの外観のカスタマイズを設定することinitです。

于 2014-08-03T05:57:19.650 に答える
0

次のようなことを試してください:

MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
[mail.navigationBar setBackgroundImage:nil forBarMetrics:UIBarMetricsDefault];

これにより、このインスタンスだけの背景画像がリセットされます。

于 2013-02-26T20:23:59.670 に答える