加载视图时不显示搜索栏 - 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
}
}
当我的一个观点被发起时我遇到了问题。我试图让搜索栏在启动视图时显示,但在我开始向下滚动时它会显示。
当我点击它时会出现:
并且我试图在启动视图时显示它,目前仅在我开始滚动时才显示:
这是我目前必须设置搜索控制器的代码:
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
}
}