我有 4 ViewControllers、A、B、C 和 D。
- A 可以继续到 B、C 和 D。
- B 可以继续到 C 和 D
- C 可以继续到 D
(粗略地)显示为图表:
A - B - C
\ | /
D
A 是 a 的根,UINavigationController也是初始的ViewController。出于某种奇怪的原因,每当我从 B 或 C 转到 D 时,D 的 the UIBarButtonItemsof 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。这些控制器之间的所有转场都是 Show(push) 转场。UIBarButtonItem当我将 B 和 D 以及 C 和 D 之间的转接更改为模态呈现时,我注意到D 功能起作用,但这只是一种解决方法。