我将呈现活动控制器,如下所示:
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
外观会给我的应用带来问题。任何其他解决方案表示赞赏
答案 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];