2016-06-08 96 views
1

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

所以我用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的它显示了一个视图控制器。

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

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

回答

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

}

+0

是的,这是行得通的。我无法删除我在AppDelegate中设置的背景图片,因此我删除了该图片并在我的ViewController中设置了图片。 –

+0

@KevinHösel:如果这样可行,请接受答案 – neha

+0

在某些应用中,条形色调或按钮色调不会更改。我认为我无能为力? –

2

如果你使用这一行然后删除这一行,一切正常。

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

至于状态栏样式,最简单的方法是通过self.navigationController作为主持人,而不是自我:

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

它可能对你有帮助