UIDocumentInteractionController导航栏的颜色变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIDocumentInteractionController导航栏的颜色变化相关的知识,希望对你有一定的参考价值。

有没有办法改变的UIDocumentInteractionController navigationbar色调/背景颜色?

答案

的@DOOManics执行一个清洁的版本:

- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
    return [self navigationController];
}
另一答案

如果你把UIDocumentInteractionController到一个UINavigationController它会自动拍摄颜色的导航栏。这可能是你的根视图navcontroller。

你这样做与documentInteractionControllerViewControllerForPreview方法:

- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller
{
    // Use the rootViewController here so that the preview is pushed onto the navbar stack
    MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
    return appDelegate.window.rootViewController;
}
另一答案

[[UINavigationBar appearance] setTintColor:[UIColor colorWithRed:107.0/256.0 green:145.0/256.0 blue:35.0/256.0 alpha:1.0]];

放在AppDelegate中的didFinisLaunching方法的代码。这将改变导航栏的颜色为整个应用程序。

另一答案

试试这个代码:

- (void)openEC:(NSURL*)url {  
     [UINavigationBar appearance].tintColor = [UIColor blueColor];  
     docController = [UIDocumentInteractionController interactionControllerWithURL:url];  
    [docController setDelegate:self];  
    [docController  presentOptionsMenuFromRect:self.view.bounds inView:self.view animated:YES];  
}

- (void)documentInteractionControllerDidDismissOptionsMenu:(UIDocumentInteractionController *)controller {  
    [UINavigationBar appearance].tintColor = [UIColor whiteColor];  
}
另一答案

如果你不使用navigationController,你可以通过你来自哪里启动UIDocumentInteractionController的UIViewController中的视图设置正确的设置,设置在UIDocumentInteractionController导航栏的颜色。

比方说,你拥有的UIViewController viewController1(从这里某处你启动UIDocumentInteractionController),在故事板一个视图1。

随着故事板打开,从上viewController1元素列表中单击视图1和走在右侧“属性检查员”。背景和色调设置有将在您的UIDocumentInteractionController以及以后使用。

然后,你可以使用:

- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
    return self;
}

需要注意的是viewController1里面,你可能有一个导航栏具有不同的属性,它们不会在UIDocumentInteractionController使用。

另一答案

斯威夫特版本@dvdfrddsgn实施

试试这个:(您需要实现UIDocumentInteractionControllerDelegate)

func documentInteractionControllerViewControllerForPreview(_ controller: UIDocumentInteractionController) -> UIViewController {
    return self.navigationController ?? self
} 

以上是关于UIDocumentInteractionController导航栏的颜色变化的主要内容,如果未能解决你的问题,请参考以下文章