ios - 删除/处理 UINavigationBar UIAppearence 以修复在 Swift iOS 中点击更多后 UIActivityViewController 共享屏幕标题透明的问题
问题描述
我在整个应用程序中使用UIAppearence()类应用了UINavigationBar.appearence()。由于在显示UIActivityViewController()共享文档时面临这个问题,我只想在显示共享文档屏幕时删除导航栏外观,然后当我们回来时导航栏应该像往常一样返回。
UINavigationBar.appearence()
我正在尝试在 iPhone 和 iPad 中使用UIActivityViewController共享 pdf 文件,能够与下面的代码共享,但在点击 (...)more 后会遇到问题,它会打开以选择屏幕标题的任何应用程序(我们有完成应用程序和编辑按钮)是透明的,标题背景应该默认为白色。用红色矩形标记的问题。标题背景覆盖导航栏外观透明属性。
让我知道如何处理/删除导航栏上的外观。
@objc func shareMenuTapped(button: UIBarButtonItem) {
let url = NSURL.fileURL(withPath: "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf")
let activityViewController = UIActivityViewController(activityItems: [url], applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView = self.shareButton // so that iPads won't crash, sharebutton is a rightbarbutton to navigation.
self.present(activityViewController, animated: true, completion: nil)
}
解决方案
在呈现时尝试使用以下代码activityViewController
:
self.present(activityViewController, animated: true) {
UIBarButtonItem.appearance().tintColor = UIColor.systemBlue
UINavigationBar.appearance().barTintColor = UIColor.white
}
推荐阅读
- json - 在 ListView 中 Flutter Bind Json 数据未在 UI 中显示
- python - 使用通配符和 pandas 查询方法
- c - 使用 RTC 时钟编程 1ms 延迟
- php - 尝试在 null laravel 8 上读取属性“id”
- android - Android 原生合约测试
- javascript - JavaScript 中最小的未使用 ID
- javascript - axios 无法发送带有 cookie 的请求
- java - 使用关联程序打开文件不会在引号中发送其路径
- python - 如何使用自动映射正确处理多个连接路径?
- angular - Angular SVG 图标不适用于 Angular Universal 项目延迟加载模块