每当用户想要选择默认情况下未列出的新共享方法或操作时,通过点击UIActivityViewController生成的共享表上的"更多"按钮,将显示一个新视图,如下所示:

如您所见,导航栏显示为白色,而背景为浅灰色.如何更改这些颜色以反映我的应用UI?
我这样做了,对我有用:
子类UIActivityViewController和重写 -(void)presentViewController:animated:completion:
- (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag completion:(void (^)(void))completion {
[viewControllerToPresent.view setTintColor:[[UINavigationBar appearance] tintColor]];
for (UIView *view in viewControllerToPresent.view.subviews) {
if ([view isKindOfClass:[UINavigationBar class]]) {
UINavigationBar *navigationBar = (UINavigationBar*)view;
UIImage *navigationBarImage = [[UINavigationBar appearance] backgroundImageForBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[navigationBar setBackgroundImage:navigationBarImage forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
[navigationBar setTitleTextAttributes:[[UINavigationBar appearance] titleTextAttributes]];
}
}
[super presentViewController:viewControllerToPresent animated:flag completion:^{
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
if (completion) {
completion();
}
}];
}
Run Code Online (Sandbox Code Playgroud)
设置导航栏上的tintColor和:barTintColor
self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
Run Code Online (Sandbox Code Playgroud)
tintColorbarTintColor如果用于导航栏背景,则用于导航项和栏按钮项
。
| 归档时间: |
|
| 查看次数: |
1943 次 |
| 最近记录: |