如何更改 UIActivityViewController 触发的发送消息对话框中的颜色?
Posted
技术标签:
【中文标题】如何更改 UIActivityViewController 触发的发送消息对话框中的颜色?【英文标题】:How do you change the colors in the Send Message dialog triggered by UIActivityViewController? 【发布时间】:2014-05-23 03:10:57 【问题描述】:我正在使用 UIActivityViewController 来允许用户在我的应用中发送消息。问题是当我选择 Message 作为我的分享方法时,“To:”部分会继承我的 NavigationBar 的背景颜色。
只有当您选择消息作为您的方法时才会出现问题 - 如果您选择邮件,导航栏下方的所有内容都会以白色背景显示。
这是我的问题的屏幕截图:
在我的AppDelegate.m
中,didFinishLaunchingWithOptions
中有以下代码:
[UINavigationBar appearance].barTintColor = [RMTheme theme].accentLight;
[UINavigationBar appearance].tintColor = [UIColor whiteColor];
并且活动控制器是通过以下代码触发的:
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[self presentViewController:activityViewController animated:YES completion:nil];
【问题讨论】:
在推送 MFMailComposeViewController 之前将导航栏颜色更改为白色或默认颜色如何? 这没有任何影响 【参考方案1】:好吧,我相信您在显示UIActivityViewController
时使用的是“PUSH”样式,而应该使用“Modal”样式。
故事板
代码
[yournavigationController presentModalViewController:YourActivityViewController animated:YES];
解决方案 2 - 使用图片
[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"top_bar3"] forBarMetrics:UIBarMetricsDefault];
解决方案 3 - 设置条形色调
[[self navigationController]navigationBar].barTintColor = [UIColor whiteColor];
【讨论】:
我正在使用[self presentViewController:activityViewController animated:YES completion:nil];
。 presentModalViewController
已弃用;但是,当我尝试该方法时,它并没有解决我的问题。
看看方案2和3,可以用image或者tint color覆盖导航栏的颜色。确保在关闭视图时重置颜色。
你可以在你的activityViewController的ViewDidLoad中做到这一点。
对,但我并没有尝试更改导航栏的颜色 - 我正在尝试更改导航栏下方的颜色。
您可以尝试更改activityViewController 子视图的tintColor 吗?如果它仍然无法正常工作,你能告诉我你的这个控制器的故事板结构吗?以上是关于如何更改 UIActivityViewController 触发的发送消息对话框中的颜色?的主要内容,如果未能解决你的问题,请参考以下文章
我在作为 UIDocumentInteractionController 和 UIActivityViewController 的一部分的 UIActivityGroupViewController