У меня есть 4 ViewControllers
, A, B, C и D.
- A может переходить к B, C и D.
- B может переходить к Cи D
- C может перейти к D
Показано (грубо) в виде графика:
A - B - C
\ | /
D
A является корнем UINavigationController
, так кака также начальный ViewController
.По какой-то странной причине, всякий раз, когда я переключаюсь с B или C на D, UIBarButtonItems
из D вообще не работает.Я добавляю их в панель навигации программно:
let settingsButton = UIButton(type: .custom)
settingsButton.frame = CGRect(x: 0, y: 0, width: 35, height: 35)
settingsButton.contentMode = .scaleAspectFit
settingsButton.setImage(UIImage(named: "settings-black.png"), for: .normal)
settingsButton.addTarget(self, action: #selector(settingsPressed), for: .touchUpInside)
settingsButton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 10)
if #available(iOS 9.0, *) {
settingsButton.widthAnchor.constraint(equalToConstant: 35).isActive = true
settingsButton.heightAnchor.constraint(equalToConstant: 35).isActive = true
}
navigationItem.setLeftBarButton = UIBarButtonItem(customView: settingsButton)
В Main.storyboard
у всех вышеупомянутых ViewControllers
есть NavigationItem
.Все segues между этими контроллерами являются Show (push) segues.Я заметил, что функциональность UIBarButtonItem
из D работает, когда я изменяю сегменты между B и D, а также C и D для представления модально, но это просто обходной путь.