我试图改变导航栏按钮的颜色,导航栏色调颜色和文字颜色,但是我似乎没有得到任何地方. MFMailComposeViewController正在通过一个UIActivityViewController激活,我已经尝试了一些以前工作的不同方法(不通过UIActivityViewController).
这是我当前的代码:
UINavigationBar.my_appearanceWhenContainedIn(MFMailComposeViewController).barTintColor = UIColor.blackColor()
这是建议here.我也试过这个:
activityVC.navigationController?.navigationBar.tintColor = UIColorFromRGB(0x0096FF) activityVC.navigationController?.navigationBar.barTintColor = UIColor.whiteColor()
我也想改变状态栏颜色.
任何人都有什么想法?
更新:
我修复了按钮和标题的导航栏问题,但仍在寻找状态栏的解决方案.这样做不行:
self.presentViewController(activityVC,animated: true,completion: { () in UIApplication.sharedApplication().setStatusBarStyle(UIStatusBarStyle.LightContent,animated: true) })
解决方法
您可以对MFMailViewController进行子类化,并覆盖其viewWillAppear方法
override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent self.navigationController.navigationBar.translucent = false self.navigationController.navigationBar.opaque = false self.navigationController.navigationBar.barTintColor = UIColor.blueColor() }
由于只有当MFMailComposeViewController处于活动状态时,才希望状态栏为lightcontent,所以您不应该将
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
进入你的应用程序代表didFinishLoading.这将为您的整个应用程序设置lightContent.