当用户在UIActivityViewController上点击"更多"时,如何设置导航栏颜色?

Bru*_*ero 6 objective-c ios

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

后续观点

如您所见,导航栏显示为白色,而背景为浅灰色.如何更改这些颜色以反映我的应用UI?

Ser*_*uca 5

我这样做了,对我有用:

子类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)


Eri*_*ric 0

设置导航栏上的tintColor和:barTintColor

    self.navigationController.navigationBar.tintColor = [UIColor whiteColor];
    self.navigationController.navigationBar.barTintColor = [UIColor blueColor];
Run Code Online (Sandbox Code Playgroud)

tintColorbarTintColor如果用于导航栏背景,则用于导航项和栏按钮项 。

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