ios - 导航 Controller 和TableView : NavBar Hidden after hidden = true one time

标签 ios swift xcode uitableview uinavigationcontroller

我有一个嵌入在 NavigationController 中的 UITableView。每个单元都链接到一个更大的信息 View Controller 。出于 UI 目的,我隐藏 TableView 上的导航栏并将其显示在 InfoViewController 中。

我遇到的问题是:启动应用程序后,导航栏成功隐藏在 TableView 上。当我第一次点击单元格并打开 InfoViewController 时,导航栏会按预期返回。我退出 VC 并进入 TableView。正如预期的那样,导航栏再次被隐藏。如果我点击另一个单元格,导航栏不会按预期显示。注意:即使我删除任何代码来隐藏导航栏,也会发生这种情况。

以下是相关代码片段:

TableViewController(在 ViewDidLoad() 中):

self.navigationController?.isNavigationBarHidden = true

InfoViewController:

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.navigationBar.isHidden = false
    super.viewWillAppear(animated)
}

为什么第一次可以用,第二次就不行了。任何帮助表示赞赏!

澄清:

应用程序打开到TableView:

enter image description here

我单击 TableViewCell 以转至 InfoViewController:

enter image description here

我点击“返回”返回到 TableViewController。导航栏仍然隐藏。我单击同一个单元格:

enter image description here

已编辑:弄乱了 TableViewController 代码。使用 = false 而不是 = true

另外,我还有一个想法,请有人帮我检查一下。 TableViewController 位于 UIContainerView 内部。几乎就好像当我点击“返回”时,我正在退出导航 Controller 流程,并且无法返回其中。

最佳答案

请尝试此代码,它可以正常隐藏navigationBar

TableViewController

class TableViewController: UITableViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        self.navigationController?.isNavigationBarHidden = true
    }
}

InfoViewController

class InfoViewController : UIViewController {
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        self.navigationController?.isNavigationBarHidden = false
    }

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        self.navigationController?.isNavigationBarHidden = true
    }
}

关于ios - 导航 Controller 和TableView : NavBar Hidden after hidden = true one time,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54585836/

相关文章:

ios - 如何在 swift 中从可加载包创建主类的实例

iOS 13新的呈现风格将状态栏变成浅色内容

ios - 如果响应类型并不总是相同,如何在 TableView 单元格上显示动态 API 数据

ios - 如何从 'sender' 对象访问用户定义的运行时属性?

ios - 从 Alamofire 闭包返回一个值

ios - 在 UIImageView 之上正确调整 UILabel 的大小

ios - 在 ios8 中使用 swift 语言发送短信

swift - 水平和垂直滚动 UITableView

ios - 如何从 GameScene 刷新 GameViewController?

ios - UIPageViewController 只显示黑屏 - 但不会抛出错误