【发布时间】:2014-03-03 10:55:47
【问题描述】:
我有一个简单的UITextView,里面有一个电子邮件链接。文本视图是可选择的并检测链接。这样,您可以单击电子邮件,它会以模态方式打开 MFMailComposeViewController 视图控制器。
但是,我在应用启动时做了一些自定义:
[[UINavigationBar appearance] setBarTintColor: myGreyColor];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor], NSFontAttributeName: myFont}];
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
这样,所有的导航栏都是灰色的,有白色的文字和白色的按钮,标题有自定义字体。
我的问题是所有这些都不适用于邮件编写器:栏是灰色的,标题是白色的,但字体是默认的 helvetica neue,按钮是默认的蓝色。而且,状态栏是黑色的,即使我的 Info.plist 显示 UIStatusBarStyleLightContent 和 View controller-based status bar appearance 设置为 NO。
当我手动调用MFMailComposeViewController 时,我知道如何自定义它,但在这里它会自动弹出。如何应用我的样式?
【问题讨论】:
-
@rdurand我遇到了与 MFMailComposeViewController 导航颜色相同的问题。你能建议我做同样的事情吗?
-
@APG :我写了一个答案。最好的方法是手动构建您的 MFMailComposeViewController 并直接对其进行自定义。然后截取UITextView中的链接点击,自己呈现邮件viewcontroller。
-
@APG :我更新了我的答案。经过一些研究,看起来自定义邮件编写器是一个非常糟糕的主意,并且会让您的应用程序被 Apple 拒绝。当您更改外观时,您应该使用 appearanceWhenContainedIn 来定位您自己的视图控制器,并让邮件编写器独自工作。
标签: ios uitextview mfmailcomposeviewcontroller