EachNavigationBar
EachNavigationBar copied to clipboard
设计缺陷?
假设:
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的场景你看看怎么处理比较好?