更改UIDocumentInteractionController上的NavigationBar背景
我必须从UIWebView将本地PDF文件(文档目录)传递给其他应用程序(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]; }
如果我selectFB Messenger或WhatsApp,它会显示一个ViewController。
如何更改此VC(背景图像/颜色,button色调)的NavigationBar外观? 默认白色半透明会很好。
我在AppDelegate中设置了一个NavigationBar背景图片。
试试这个代码:
- (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];
}
如果你使用这一行然后删除这一行,一切正常。
[[UINavigationBar appearance] setBackgroundImage:[[UIImage alloc] init] forBarPosition:UIBarPositionAny barMetrics:UIBarMetricsDefault];
至于状态栏样式,最简单的方法是将self.navigationController作为演示者,而不是self:
- (UIViewController *) documentInteractionControllerViewControllerForPreview: (UIDocumentInteractionController *) controller { return self.navigationController; }
这可能对你有所帮助
- 如何将 Swift 2.0中的NSArray?
- iOS延迟加载表格图像
- MPMoviePlayerViewController观察'_serverConnectionDiedNotification'
- 如何在使用AVAudioPlayer框架完成播放后再次播放相同的声音?
- 来自Apple Watch的openSystem API电话?
- iOS:在通话/录音/热点会话期间,启动图像在中心褶皱
- 如果以编程方式创build,则无法访问UIImageView
- 如何在LaunchStoryboard中显示CFBundleShortVersionString?
- 轻扫以删除embedded在UIScrollView中的UITableView