搜索框未出现在iOS 11导航栏上。

8

我正在推送一个视图控制器,我想要一个搜索栏,但搜索栏根本没有显示出来。以下是代码。我错过了什么吗?

var searchController = UISearchController(searchResultsController: nil)
searchController.searchResultsUpdater = self
searchController.obscuresBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search here..."
definesPresentationContext = true
searchController.searchBar.delegate = self
searchController.searchBar.sizeToFit()
if #available(iOS 11.0, *) {

    self.navigationItem.searchController = searchController
} else {
    // Fallback on earlier versions
    navigationItem.titleView = searchController.searchBar
    navigationItem.titleView?.layoutSubviews()
}

我使用了你的代码,它可以正常工作。 - Wings
你是如何推出新的视图控制器的? - Saqib Omer
3
通过添加这行代码进行解决 - navigationItem.hidesSearchBarWhenScrolling = false。 - Ajay Kumar
1
我认为除非你自己创建,否则无法将其放置在导航栏上方。 - Scriptable
你找到解决方案了吗?@AjayKumar - Pratyush Pratik
显示剩余3条评论
2个回答

14

您需要将此行添加到您的代码中:

navigationItem.hidesSearchBarWhenScrolling = false

滚动时隐藏搜索栏,当推送视图控制器时显示搜索栏。


0
所以,`navigationItem.hidesSearchWhenScrolling`只在你设置`navigationItem`的`searchController`属性时起作用,而不是当你将`navigationItem.titleView`设置为`searchBar`时。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接