UIActivityViewController中的MFMailComposeViewController具有默认的蓝色色调

时间:2017-12-14 10:04:47

标签: ios swift mfmailcomposer

我将呈现活动控制器,如下所示:

let vc = UIActivityViewController(activityItems: [SettingsProvider.shareUrl], applicationActivities: nil)
vc.modalTransitionStyle = .crossDissolve
vc.modalPresentationStyle = .overCurrentContext
self.present(vc, animated: true, completion: nil)

另外,我使用外观属性为导航栏设置了全局色调颜色,窗口色调颜色。

当我点击消息应用程序等应用程序时,控制器会为除MFMailViewController以外的小节按钮采用app色彩。 有没有办法改变UIActivityController所呈现的应用程序的色调颜色。

更改BarButton外观会给我的应用带来问题。任何其他解决方案表示赞赏

2 个答案:

答案 0 :(得分:2)

我找到了解决方案,但不知道这是否正确。

写一个MFMailComposeViewController的扩展名救了我。

extension MFMailComposeViewController: MFMailComposeViewControllerDelegate {
    open override func viewDidLoad() {
        super.viewDidLoad()
        navigationBar.tintColor = UIColor.white
    }
}
通过Activity控制器提供的

MFMailComposeViewController将对应于我编写的扩展名。这样,MFMailComposeViewController将响应被覆盖的 viewDidLoad() 方法。

答案 1 :(得分:0)

请尝试使用此代码更改条形按钮颜色,我认为它会对您有所帮助。

var navigationBarAppearace = UINavigationBar.appearance()
navigationBarAppearace.tintColor = uicolorFromHex(0xffffff)
navigationBarAppearace.barTintColor = uicolorFromHex(0x034517)

请使用此代码我已在目标c中使用此代码。

MFMailComposeViewController* mailViewController = [[MFMailComposeViewController alloc] init];        
mailViewController.mailComposeDelegate = self;
[mailViewController setToRecipients:@[@"abc@def.com"]];

[mailViewController.navigationBar setTintColor:[UIColor blackColor]];

[self presentViewController:mailViewController animated:YES completion:nil];