首页 文章

隐藏搜索栏也隐藏了导航栏 Headers

提问于
浏览
-1

我有 navigation barsearch 按钮 . 单击它会显示 searchbar 并在取消按钮上单击它隐藏 . 但出于某种原因,如果 searchbar 被隐藏,那么导航栏titleview也会隐藏 . 什么可能导致这个?起初我实际上希望它从右边滑入 titleView 但我无法实现它所以我就这样做了 .

这是显示它并隐藏它的代码:

//Create searchbar
    func createSearchBar(){

        searchBar.showsCancelButton = true
        searchBar.tintColor = UIColor(red:0.184, green:0.996, blue:0.855, alpha:1.00)
        searchBar.placeholder = "Search brands"
        searchBar.delegate = self



        searchBar.hidden =  false
        searchBar.alpha = 0

        navigationItem.titleView = searchBar
        navigationItem.setLeftBarButtonItem(menuButton, animated: true)
        navigationItem.setRightBarButtonItem(searchButtton, animated: true)


        UIView.animateWithDuration(0.5, animations: {
            self.searchBar.alpha = 1
            }, completion: { finished in
                self.searchBar.becomeFirstResponder()
        })


    }

    //Searchbar hide
    func hideSearchBar() {


        navigationItem.setLeftBarButtonItem(menuButton, animated: true)
        navigationItem.setRightBarButtonItem(searchButtton, animated: true)
        searchBar.alpha = 0
        UIView.animateWithDuration(1, animations: {


            }, completion: { finished in

        })
    }

    //Searchbar cancel button
    func searchBarCancelButtonClicked(searchBar: UISearchBar) {
        hideSearchBar()
        searchBar.endEditing(true)
        snusBrandsTableView.reloadData()
    }

1 回答

  • 3

    如果要在隐藏 searchBar 时设置 navigationItem navigationItem ,则需要将 titleView 设置为nil,然后设置 Headers .

    func hideSearchBar() {
        navigationItem.setLeftBarButtonItem(menuButton, animated: true)
        navigationItem.setRightBarButtonItem(searchButtton, animated: true)
        searchBar.alpha = 0
        self.navigationItem.titleView = nil
        self.navigationItem.title = "YourTitle"
    }
    

相关问题