SearchBar没有出现在Swift 4 IOS 11的NavigationBar中

时间:2017-11-27 05:09:37

标签: ios11 swift4 xcode9

我一直在尝试通过UISearchController在我的应用中添加Searchbar。它没有出现在我的导航栏上。我添加了一个导航控制器作为根视图控制器,并没有改变任何东西,只是它的色调颜色。我尝试了一些解决方案但没有任何效果。我正在使用Swift 4.0和Xcode 9并在IOS 11上运行应用程序。下面是我的代码。提前谢谢。

if #available(iOS 11.0, *) {
        let sc = UISearchController(searchResultsController: nil)
        sc.delegate = self
        let scb = sc.searchBar
        scb.sizeToFit()

        scb.heightAnchor.constraint(equalToConstant: 44.0).isActive = true
        scb.tintColor = UIColor.white


        self.navigationController?.navigationItem.searchController = sc
        self.navigationController?.navigationItem.hidesSearchBarWhenScrolling = false

    }

4 个答案:

答案 0 :(得分:2)

我不知道为什么,但它会帮助你。

直接在NavigationItem中添加搜索控制器。

navigationItem.searchController = sc
navigationItem.hidesSearchBarWhenScrolling = false

答案 1 :(得分:0)

将搜索栏设置为tableview标题,为我工作。

self.tableView.tableHeaderView = self.searchController.searchBar

答案 2 :(得分:0)

也许删除sc.delegate = self并放入scb.delegate = self。 另外,我认为您只需在scb.sizeToFit()scb.heightAnchor.constraint(equalToConstant: 44.0).isActive = true之间选择一个,因为一个排除了另一个。希望对您有所帮助。

答案 3 :(得分:-1)

这将解决您的问题

将搜索栏添加到导航栏的标题视图

self.navigationItem.titleView = searchBar