代码之家  ›  专栏  ›  技术社区  ›  J Derbs

加载视图时不会显示搜索栏-iOS

  •  0
  • J Derbs  · 技术社区  · 6 年前

    当我点击它时会显示: enter image description here

    我正试图让它在视图启动时显示,它当前只在我开始滚动时显示:

    enter image description here

        searchController.searchBar.scopeButtonTitles = ["Posts", "Users"]
            searchController.searchBar.delegate = self
            navigationController?.navigationItem.searchController = searchController
            navigationController?.navigationItem.searchController?.searchBar.isHidden = false
            searchController.searchResultsUpdater = self
            searchController.obscuresBackgroundDuringPresentation = false
            searchController.searchBar.placeholder = "Search"
            searchController.searchBar.isHidden = false
            searchController.searchBar.showsScopeBar = true
    //        searchController.hidesNavigationBarDuringPresentation = false
            self.navigationController?.setNavigationBarHidden(false, animated: true)
    
            navigationItem.searchController = searchController
    //        navigationController?.navigationItem.hidesSearchBarWhenScrolling = false
            definesPresentationContext = true
    

    我试过很多不同的方法让搜索栏在点击时出现,但我没有成功。有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  3
  •   Jakub Sanestrzik    6 年前

    navigationItem.hidesSearchBarWhenScrolling = false
    

    如果您不想从一开始就显示if并在滚动时隐藏它,那么您需要这样做:

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        if #available(iOS 11.0, *) {
            navigationItem.hidesSearchBarWhenScrolling = false
        }
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        if #available(iOS 11.0, *) {
            navigationItem.hidesSearchBarWhenScrolling = true
        }
    }