Пользовательская панель навигации перекрывается при переходе в другое представление - PullRequest
0 голосов
/ 07 марта 2019

Я создавал приложение, в котором оно использует собственный образ заголовка вместо того, который предоставляет XCode.У меня есть разные классы, обрабатывающие два разных контроллера представленияОдин называется MainViewController, а другой CategoryViewController.Поскольку я также использую большие заголовки, следующий код используется для удаления стандартного образа контроллера навигации из MainViewController, который я нашел в Интернете через эту статью .

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, используя тот же код на CategoryViewController, я меняю navController.view.backgroundColor = .black.Проблема в том, что я получаю эту действительно странную ошибку, которая не может быть исправлена.

enter image description here

Есть ли что-то еще, что я мог бы сделать, чтобы построить-в выпуске, не жертвуя встроенной анимацией заголовков или, возможно, используя другой код для получения одинаковых результатов?

Заранее всем спасибо!

1 Ответ

0 голосов
/ 07 марта 2019

Нашли это!Я просто снова написал тот же код, который унаследовали другие ViewControllers.Код, который я запускаю дважды, был ошибкой.Поэтому CategoryViewController TopBar был установлен как встроенный, и вы можете просто добавить другое пользовательское изображение, и приложение будет отлично работать без каких-либо ошибок.

...