我一直在构建一个应用程序,该应用程序使用自定义的Header Image替换XCode提供的标题图像。我有不同的类来处理两个不同的视图控制器。一个叫做MainViewController,另一个叫做CategoryViewController。由于我也使用大标题,因此以下代码用于从MainViewController中删除标准的Navigation Controller图像,该图像是通过this article在线找到的。
struct System {
static func clearNavigationBar(forBar navBar: UINavigationBar) {
navBar.setBackgroundImage(UIImage(), for: .default)
navBar.shadowImage = UIImage()
navBar.isTranslucent = false
}
}
然后将以下内容放入视图中将出现的方法。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if let navController = navigationController {
System.clearNavigationBar(forBar: navController.navigationBar)
navController.view.backgroundColor = .clear
}
}
现在,我的问题是,当我单击对CategoryViewController执行segue的按钮时,使用CategoryViewController上的相同代码,我更改了navController.view.backgroundColor = .black
。问题是我遇到了一个我无法修复的非常奇怪的重叠错误。
在不牺牲标题的内置动画或使用不同代码获得相同结果的情况下,还有其他其他方法可以解决内置问题吗?
谢谢大家!
答案 0 :(得分:0)
找到了!我只是再次写了其他ViewController继承的相同代码。我运行两次的代码就是该错误。因此,CategoryViewController TopBar设置为固有,您也可以简单地添加另一个自定义图像,该应用程序将完美运行而不会出现任何错误。