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

Search Bar Doesn't Appear When View loads - iOS

当我的一个观点被发起时我遇到了问题。我试图让搜索栏在启动视图时显示,但在我开始向下滚动时它会显示。 当我点击它时会出现:

并且我试图在启动视图时显示它,目前仅在我开始滚动时才显示:

这是我目前必须设置搜索控制器的代码:

    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

我尝试了很多不同的方法来让搜索栏在点击时出现,但我没有成功。有任何想法吗?

您需要添加这一行:

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
    }
}