在UIDocumentInteractionController上更改NavigationBar背景

时间:2016-06-08 13:02:46

标签: ios objective-c uinavigationbar

我必须将本地PDF文件(文档目录)从UIWebView传递到其他应用程序(iBooks,Facebook Messenger,WhatsApp,...)。

所以我使用UIDocumentInteractionController:

- (IBAction)shareButton:(id)sender
{
    NSURL *url = [NSURL URLWithString:self.webView.request.URL.absoluteString];

    self.docController = [UIDocumentInteractionController interactionControllerWithURL:url];
    self.docController.delegate = self;
    [self.docController presentOpenInMenuFromBarButtonItem:sender animated:YES];
}

如果我选择FB Messenger或WhatsApp,它会显示一个ViewController。

如何更改此VC的NavigationBar外观(背景图像/颜色,按钮色调)?默认的白色半透明会很好。

我在AppDelegate中设置了NavigationBar背景图片。

2 个答案:

答案 0 :(得分:2)

如果您使用此行,则只需删除此行,一切正常。

[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];

对于状态栏样式,最简单的方法是将self.navigationController作为演示者传递,而不是自我:

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

对您有所帮助

答案 1 :(得分:0)

试试这段代码:

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

}