QLPreview控制器的色调颜色在第一次打开时是不同的



每当我调出QLPreviewController时,tintColor默认为粉红色。我希望它是一种特定的颜色,所以我把它设置为这样

UINavigationBar.appearance().tintColor = UIColor.hexStringToUIColor(hexStr: "202020")

这就是调出QLPreviewController的方法的样子

func openQLPreview() {
quickLookController = QLPreviewController()
UINavigationBar.appearance().tintColor = UIColor.hexStringToUIColor(hexStr: "202020")
quickLookController.dataSource = self
self.navigationController?.pushViewController(self.quickLookController, animated: true)
}

这是第一次的样子(安装或关闭并重新打开后,我使用 QLPreviewController 打开文档

这就是当我点击后退箭头并打开同一文档或任何其他文档时的样子

我希望它始终是第二种颜色,无论它是否是我第一次打电话给QLPreviewController。每当应用终止并重新启动时,它都会切换回粉红色。

编辑(2/12/19(我已经解决了。它不起作用的原因是我在将QLPreviewController推送到navigationController堆栈之前设置了 tintColor,因此,它正在为堆栈中的上一个导航项设置tintColor(这没什么,因为我在整个应用程序中使用自定义navigationBar(。因此,当QLPreviewController从堆栈中弹出,然后在下次打开文档时推回时,tintColor保留了我上次设置它时的内容。

func openQLPreview() {
quickLookController = QLPreviewController()
quickLookController.dataSource = self
self.navigationController?.pushViewController(self.quickLookController, animated: true)
UINavigationBar.appearance().tintColor = UIColor.hexStringToUIColor(hexStr: "202020")
}

因此,只需在推送QLPreviewController后使用UINavigationBar.appearance().tintColor设置色调,即可解决此问题。

试试这个

@IBOutlet weak var m_NavBar: UINavigationBar!
func openQLPreview() 
{
quickLookController = QLPreviewController()
m_NavBar.appearance().tintColor = UIColor.hexStringToUIColor(hexStr: "202020")
quickLookController.dataSource = self
self.navigationController?.pushViewController(self.quickLookController, animated: true)
}

相关内容

最新更新