设计缺陷?
假设:
let vcs = self.navigationController?.viewControllers ?? []
self.navigationController?.setViewControllers(vcs.reversed(), animated: true)
setupNavigationBarWhenViewDidLoad()中的backBarButtonItem处理是不是就会有问题?
感觉可以用func setViewControllers(_ viewControllers: [UIViewController], animated: Bool)交换实现 来更新backBarButtonItem的显示, 明天我改一下试试看.
EachNavigationBar 中 backBarButtonItem 使用的是leftBarButtonItem, 这是否会和外部设置的leftBarButtonItem 或 leftBarButtonItems 发生冲突??
这个问题很矛盾 我感觉需要你来斟酌一下, 是否要尽量与原生NavigationBar的特性保持一致?
/// Bar button item to use for the back button in the child navigation item.
open var backBarButtonItem: BackBarButtonItem? {
didSet {
backBarButtonItem?.navigationController = viewController?.navigationController
viewController?._navigationItem.leftBarButtonItem = backBarButtonItem
}
}
EachNavigationBar中backBarButtonItem使用的是leftBarButtonItem, 这是否会和外部设置的leftBarButtonItem或leftBarButtonItems发生冲突??这个问题很矛盾 我感觉需要你来斟酌一下, 是否要尽量与原生NavigationBar的特性保持一致?
/// Bar button item to use for the back button in the child navigation item. open var backBarButtonItem: BackBarButtonItem? { didSet { backBarButtonItem?.navigationController = viewController?.navigationController viewController?._navigationItem.leftBarButtonItem = backBarButtonItem } }
系统的 backBarButtonItem 无法通过 UINavigationBar 来控制,所以只能自己实现了这套逻辑
setViewControllers的场景你看看怎么处理比较好?