EachNavigationBar icon indicating copy to clipboard operation
EachNavigationBar copied to clipboard

设计缺陷?

Open lixiang1994 opened this issue 3 years ago • 4 comments

假设:

let vcs = self.navigationController?.viewControllers ?? []
self.navigationController?.setViewControllers(vcs.reversed(), animated: true)

setupNavigationBarWhenViewDidLoad()中的backBarButtonItem处理是不是就会有问题?

lixiang1994 avatar Dec 08 '21 12:12 lixiang1994

感觉可以用func setViewControllers(_ viewControllers: [UIViewController], animated: Bool)交换实现 来更新backBarButtonItem的显示, 明天我改一下试试看.

lixiang1994 avatar Dec 08 '21 12:12 lixiang1994

EachNavigationBarbackBarButtonItem 使用的是leftBarButtonItem, 这是否会和外部设置的leftBarButtonItemleftBarButtonItems 发生冲突??

这个问题很矛盾 我感觉需要你来斟酌一下, 是否要尽量与原生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
        }
    }

lixiang1994 avatar Dec 09 '21 03:12 lixiang1994

EachNavigationBarbackBarButtonItem 使用的是leftBarButtonItem, 这是否会和外部设置的leftBarButtonItemleftBarButtonItems 发生冲突??

这个问题很矛盾 我感觉需要你来斟酌一下, 是否要尽量与原生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 来控制,所以只能自己实现了这套逻辑

Pircate avatar Dec 16 '21 03:12 Pircate

setViewControllers的场景你看看怎么处理比较好?

lixiang1994 avatar Dec 16 '21 03:12 lixiang1994