2

我正在尝试为 MFMailComposeViewController 修改 UINavigationBar 中的 tintColor,但这似乎不起作用。

   [[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setTintColor:[UIColor whiteColor]];
   [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], [MFMailComposeViewController class], nil] setTintColor:[UIColor blackColor]];

在任何人引用 Apple 说“邮件撰写界面本身不可定制且不得由您的应用程序修改”之前,我之前提交了一个应用程序,该应用程序在 App Store 中以类似方式修改了 UINavigationBar,在审核过程中没有任何问题。

当我在整个应用程序中为这些类设置外观时,它可以工作,如下所示:

   [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
   [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTintColor:[UIColor blackColor];

问题是我不希望这些外观设置应用于所有 UINavigationBar/UIBarButtonItem 实例。

我对如何使用 appearanceWhenContainedIn: 的理解不正确吗?或者是别的什么?

一如既往地感谢您的帮助:)

4

1 回答 1

5

这似乎是 iOS 6.x 中的一个错误,我的 Open Radar - http://openradar.me/radar?id=2984402

Apple 已回复我,它与以前已知的错误 (#12328070) 重复,因此应该很快修复。

此代码将在 iOS 5 中按预期工作。

为了解决这个问题,我建议您在创建时手动应用您想要的MFMailComposeViewController

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

[mailComposerController.navigationBar setTintColor:[UIColor redColor]];

如果我发现有关该主题的任何其他内容,我将更新我的答案。

于 2013-04-28T03:03:09.927 回答