2

如何更改UIActivityViewController模式共享操作中使用的邮件撰写对象导航栏的外观?

UINavigationBar - 错误的色调

UIActivityViewController符合UIAppearance,所以我认为以下确实有效,但事实并非如此。导航栏保持默认蓝色。

activityVC.navigationController.navigationBar.tintColor = [UIColor greyColor];

语境:

    - (IBAction)share {
        NSString *textToShare = ...;
        NSURL *url = ...;

        NSArray *activityItems = [[NSArray alloc]  initWithObjects:textToShare,url,nil];

        UIActivity *activity = [[UIActivity alloc] init];
        NSArray *applicationActivities = [[NSArray alloc] initWithObjects:activity, nil];
        UIActivityViewController *activityVC =
        [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
        [activityVC setExcludedActivityTypes:[NSArray arrayWithObjects:                                              UIActivityTypeMessage,UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,UIActivityTypePostToWeibo,                                              UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,
                                              nil]];

        activityVC.navigationController.navigationBar.tintColor = [UIColor greyColor];

        [self presentViewController:activityVC animated:YES completion:nil];
    }

我怎样才能将颜色UINavigationBar从蓝色更改为灰色。

4

1 回答 1

5

在您的应用程序委托中执行此操作,它将更改整个应用程序中显示导航栏的导航栏颜色

[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:.9 green:.9 blue:.9 alpha:1]];

您还可以在 Application Delegate 中使用它来更改文本颜色和字体

NSDictionary *navbarTitleTextAttributes = [NSDictionary dictionaryWithObjectsAndKeys:
                                           [UIColor redColor],UITextAttributeTextColor,
                                           [UIFont fontWithName:@"Arial" size:19],UITextAttributeFont,
                                           nil];
[[UINavigationBar appearance] setTitleTextAttributes:navbarTitleTextAttributes];
于 2012-12-18T11:23:28.943 回答