Ios 如何在用户点击“时设置导航栏颜色”;“更多”;在UIActivityViewController上?

Ios 如何在用户点击“时设置导航栏颜色”;“更多”;在UIActivityViewController上?,ios,objective-c,Ios,Objective C,每当用户想要选择默认情况下未列出的新共享方法或操作时,通过点击UIActivityViewController生成的共享表上的“更多”按钮,将显示一个新视图,如下所示: 如您所见,导航栏的图标为白色,而背景为浅灰色。如何更改这些颜色以反映我的应用程序界面?在导航栏上设置tintColor和barTintColor: self.navigationController.navigationBar.tintColor = [UIColor whiteColor]; self.nav

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


如您所见,导航栏的图标为白色,而背景为浅灰色。如何更改这些颜色以反映我的应用程序界面?

在导航栏上设置
tintColor
barTintColor

    self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
tintColor
用于导航项和条形按钮项
bartincolor
if用于导航栏背景。

在打开之前在模式上设置此属性,类似于:

modal.navigationController.navigationBar.barTintColor = ...

你能提供一些代码让我们看看你现在在尝试什么吗

我做了这件事,它对我很有用:

子类
UIActivityViewController
和重写
-(void)presentViewController:动画:完成:

- (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();
    }
}];
}

您可能正在使用UIAppearance选择器通过在类中调用来修改应用程序上的所有导航栏。相反,在单个对象上调用外观方法,这将避免系统导航栏被这样着色。

这会在共享工作表上更改栏,但当点击“更多”按钮时,会打开一个具有不同栏颜色的模式。