2017-03-13 60 views
0

我们的应用程序有一个带有图像的UINavigationBar。当我们继续(推)到另一个屏幕,然后点击后退按钮,当导航栏上的图像重新出现时,它从左到右看起来会动起来。这有点分散注意力。你如何删除这个后退按钮动画?iOS:删除UINavigationBar动画

我们尝试改变赛格动画设置,但这改变了推动画而不是后动画。

我们的导航栏代码:

let logoImage:UIImage = UIImage(named: "ABC")! 
    viewController.navigationItem.titleView = UIImageView(image: logoImage) 
+0

如果你知道objective-c只是一点这个答案可能会帮助你[如何防止UINavigationBar动画](http://stackoverflow.com/a/8602982/6689101) – zombie

回答

1

想通了这一点水龙头的方法在很大程度上是由于这个答案https://stackoverflow.com/a/8602982/47281

创建自定义导航栏和覆盖popItem

class MyNavigationBar: UINavigationBar { 
    override func popItem(animated: Bool) -> UINavigationItem? { 
     return super.popItem(animated: false) 
    } 
} 

通过故事板进入MyNavigationBar为我们的导航器的导航栏类:

enter image description here

注意我没有重载NavigationController popViewControllerAnimated为在相关答案中。

+0

感谢您的回答。为什么这不工作,如果我用pushItem做同样的事情? – Deivuh

-1

你可以这样做:

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) 
} 
+0

这不是你如何更换后退按钮 – Yariv