【问题标题】:iOS: Removing UINavigationBar animationiOS:删除 UINavigationBar 动画
【发布时间】:2017-03-13 21:54:57
【问题描述】:

我们的应用有一个 UINavigationBar,上面有一张图片。当我们继续(推送)到另一个屏幕然后单击后退按钮时,导航栏上的图像似乎在重新出现时从左到右进行动画处理。这有点让人分心。你怎么能删除这个后退按钮动画?

我们尝试更改 segue 动画设置,但这会更改推送动画而不是返回动画。

我们的导航条码:

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

【问题讨论】:

标签: ios swift uinavigationcontroller uinavigationbar


【解决方案1】:

很大程度上是由于这个答案https://stackoverflow.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)
}

【讨论】:

  • 这不是你替换后退按钮的方式
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
  • 1970-01-01
  • 2013-08-12
  • 2013-08-22
  • 1970-01-01
  • 2011-12-06
  • 1970-01-01
相关资源
最近更新 更多