gpt4 book ai didi

ios - 滑动 ViewController 时导航栏错误

转载 作者:行者123 更新时间:2023-11-28 08:31:53 25 4
gpt4 key购买 nike

我有一个 View Controller ,它是第二个 View Controller ,需要一个导航栏。第一个是不需要导航栏的 Controller ,第三个 View Controller 需要导航栏。

根据堆栈,第 3 个 View Controller 将不在堆栈顶部。

我已经在 2nd View Controller 中实现了这些方法:

override func viewWillAppear(animated: Bool) {

super.viewWillAppear(animated)
if self.navigationController?.navigationBarHidden == true{
self.navigationController?.navigationBarHidden = false
}

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .Plain, target: nil, action: nil)
self.navigationController?.navigationBar.tintColor = Quikr_Util.colorWithHexString("#0083cb")
}

override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
if self.navigationController?.navigationBarHidden == false{
self.navigationController?.navigationBarHidden = true
}
}

如果使用 back 栏按钮从第 3 个 View Controller 返回到第 2 个 View Controller ,则一切正常。

当我开始从一个 View Controller 滑动到另一个时,事情变得一团糟,例如,当我滑动一半然后释放时。

这意味着从第 3 个滑动到第 2 个,但在中间释放,所以它会转到第 3 个 View Controller 而不是第二个。

隐藏和取消隐藏 View 导航栏的最佳方式可能是什么。

其次,滑动是如何工作的,滑动时会调用哪些函数?

最佳答案

第一个问题

要隐藏和显示导航 Controller ,在第二和第三 View Controller 中,您可以使用:

  • 隐藏:

    navigationController?.setNavigationBarHidden(true, animated: false)
  • 显示:

    navigationController?.setNavigationBarHidden(false, animated: false)

实际上没有必要检查它是否隐藏。

第二个问题,可以使用UIGestureRecognizer

编辑:明确一点,不是在同一文件中隐藏和显示,而是在所需的 swift 文件中的 viewDidAppear() 中隐藏和显示

关于ios - 滑动 ViewController 时导航栏错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38695586/

25 4 0