Мне удалось сузить ошибку с помощью комментария @matt, сделанного в комментариях, он сказал I'm having quite a lot of trouble understanding what any of the code you've shown could possibly have to do with UIBackButtonContainerView. It seems to me we want to be looking at your back button, not this loginButton
.Когда он сказал, что я посмотрел на другие части моего кода.
Этот LoginVC с проблемой - root vc
, и у меня нет barButtonItem, но я использовал эту строку кода ниже, чтобы скрытьтекст в элементе backBarButton
в vc, который вставлялся так, чтобы отображалась только стрелка назад.
Это в родительском vc, который нажимает:
// LoginVC with loginButton inside of it
navigationItem.backBarButtonItem = UIBarButtonItem(title: nil, style: .plain, target: nil, action: nil)
Это на дочернем виртуальном канале, на который давят:
// child vc that’s getting pushed on
if view.frame.width == 414 && view.frame.height == 896 || view.frame.width == 375 && view.frame.height == 812 {
navigationController?.navigationBar.prefersLargeTitles = true
} else {
navigationController?.navigationBar.prefersLargeTitles = false
}
Я понятия не имею, почему я могу использовать это без проблем с iPhone 5,6,7 и 8 серий, но не с серией X,Когда я это прокомментировал, это сработало.
Чтобы заставить его работать и все еще скрывать текст в следующем виртуальном канале, мне пришлось изменить код на:
navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
Разница в том,параметр title:
.
Когда он не работал, я установил параметр на nil
.
Чтобы заставить его работать, я установил пустые кавычки: ""
Очень странная проблема ???
ОБНОВЛЕНИЕ при дальнейшей проверке проблема связана с
navigationController?.navigationBar.prefersLargeTitles = true
Кажется, вы не можете использоватьКод выше И установите заголовок backBarButton на ноль.Я думаю, Apple хочет убедиться, что какой-то текст присутствует при использовании больших заголовков навигационной панели.