首页 > 解决方案 > 如何在同一导航控制器的第二个 VC 中隐藏 searchBar

问题描述

假设我在同一个导航控制器中有 2 个 VC。在第一个 VC(tableViewController)中,有一个以编程方式定义的搜索栏,当单击 tableVC 的一行时,它将显示(segue)第二个 VC(也是 tableVC)。 在此处输入图像描述

现在的问题是,当 searchBar 在第一个 VC 中处于活动状态时,例如输入一些单词,然后显示第二个 VC,searchBar 也会出现在第二个 VC 中。我想在第二个 VC 中隐藏 searchBar。既然 searchBar 是在第一个 VC 中定义的,我怎么能这样做?任何提示表示赞赏。

/// 更新:尝试在第一个 VC 的 viewDidDisappear() 中隐藏 searchBar,但是导航栏一起消失了,这不是预期的行为。

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)

        // hide searchBar
        self.resultSearchController.searchBar.isHidden = true
    }

///嗯,这段代码可以在2nd VC中移除searchBar,但是有移除的动画,即使我设置了也不是我想要的super.viewWillDisappear(false)

    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(false)

        // hide searchBar
        resultSearchController.isActive = false

    }

标签: swiftsearchbar

解决方案


推荐阅读