iOS:删除 UINavigationBar 动画
Posted
技术标签:
【中文标题】iOS:删除 UINavigationBar 动画【英文标题】:iOS: Removing UINavigationBar animation 【发布时间】:2017-03-13 21:54:57 【问题描述】:我们的应用有一个 UINavigationBar,上面有一张图片。当我们继续(推送)到另一个屏幕然后单击后退按钮时,导航栏上的图像似乎在重新出现时从左到右进行动画处理。这有点让人分心。你怎么能删除这个后退按钮动画?
我们尝试更改 segue 动画设置,但这会更改推送动画而不是返回动画。
我们的导航条码:
let logoImage:UIImage = UIImage(named: "ABC")!
viewController.navigationItem.titleView = UIImageView(image: logoImage)
【问题讨论】:
如果你对 Objective-c 有一点了解,这个答案可能会对你有所帮助How to prevent animation of UINavigationBar 【参考方案1】:很大程度上是由于这个答案https://***.com/a/8602982/47281
创建自定义导航栏并覆盖popItem
:
class MyNavigationBar: UINavigationBar
override func popItem(animated: Bool) -> UINavigationItem?
return super.popItem(animated: false)
通过情节提要输入MyNavigationBar
作为我们导航控制器的导航栏类:
请注意,我没有像链接的答案那样覆盖 NavigationController popViewControllerAnimated
。
【讨论】:
感谢您的回答。如果我对 pushItem 做同样的事情,为什么这不起作用?【参考方案2】:你可以这样做:
override func viewDidLoad()
super.viewDidLoad()
let logoImage: UIImage = UIImage(named: "ABC")!
self.navigationItem.leftBarButtonItem = UIBarButtonItem(image: logoImage, style: .plain, target: self, action: #selector(backBtnPressed))
然后创建一个方法来处理按钮上的点击
func backBtnPressed()
_ = self.navigationController?.popViewController(animated: false)
【讨论】:
这不是你替换后退按钮的方式以上是关于iOS:删除 UINavigationBar 动画的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 音乐 App 中向上滚动时实现 UINavigationBar 动画?
iOS 7(子层)AVPlayer Fullscreen animate 需要上面(覆盖)UINavigationBar
创建此自定义 UINavigationbar ios 的最佳方法
如何隐藏 UINavigationBar 和 UITabBar 动画?