【发布时间】:2016-01-09 23:50:09
【问题描述】:
我有一个带有 ActionSheet 样式的 UIAlertController。有 2 个选项。当用户选择其中任何一个时,它会显示 Apple 内置的 UIActivityViewController。我遇到的问题是,当用户随后选择消息或邮件等时,导航栏按钮为深蓝色,状态栏为黑色。我希望按钮为白色,而状态栏为白色。唯一正常工作的是导航栏颜色是我在应用程序委托中设置的蓝色。
我在 App Delegate 中的代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Nav Bar
UINavigationBar.appearance().translucent = false
UINavigationBar.appearance().opaque = true
UINavigationBar.appearance().barTintColor = primaryBlueColor
UINavigationBar.appearance().tintColor = UIColor.whiteColor()
// Status Bar
UIApplication.sharedApplication().statusBarHidden = false
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.LightContent
}
当我展示 UIActivityViewController 时,我可以将“取消”按钮的颜色自定义为自定义蓝色。但同样,当用户按下消息或任何其他选项时,它会转到一个新屏幕并且颜色不正确。这就是我所拥有的:
let activityController = UIActivityViewController(activityItems: [textFile], applicationActivities: nil)
self.presentViewController(activityController, animated: true, completion: nil)
activityController.view.tintColor = primaryBlueColor
编辑问题 1:
我刚刚找到了将按钮更改为白色的答案。现在缺少的只是状态栏变成白色。这是我在上面的 App Delegate 方法中添加的内容。
UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.classForCoder()]).tintColor = UIColor.whiteColor()
对状态栏有什么建议吗?
【问题讨论】:
标签: ios objective-c swift uinavigationbar uiactivityviewcontroller