gpt4 book ai didi

iOS - 按下后退按钮时导航栏颜色转换

转载 作者:可可西里 更新时间:2023-11-01 03:33:27 26 4
gpt4 key购买 nike

我试图在导航堆栈上推送 View Controller 时更改导航栏的颜色,在 navigationController(_:willShow:animated:) 期间使用 barTintColor。

代码如下:

  func navigationController(_ navigationController: UINavigationController, willShow viewController: UIViewController, animated: Bool) {
if viewController is ViewerViewController {
navigationBar.barTintColor = UIColor(custom: .white)
navigationBar.tintColor = UIColor(custom: .black)
} else if viewController is FeedViewController {
navigationBar.barTintColor = UIColor(custom: .blue)
navigationBar.tintColor = UIColor(custom: .white)
}
}

当我按下 View Controller 和使用向后滑动手势时(颜色过渡在这两种方式中都很平滑),一切都很好。

但是当我按下后退按钮时,颜色一开始没有改变,导航过渡完成,然后颜色改变,没有动画。。 p>

是否有人遇到/解决了这个问题?任何线索将不胜感激。

最佳答案

我遇到了完全相同的问题,所以用自定义左栏按钮替换了“后退”按钮,并调用:

navigationController?.popViewController(animated: true)

编辑:

设置 leftBarButton 导致滑动手势丢失,所以我需要另一个 hack:

navigationItem.leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "back"), style: .plain, target: self, action: #selector(pop))
navigationController?.interactivePopGestureRecognizer?.delegate = self

关于iOS - 按下后退按钮时导航栏颜色转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40586972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com