如何从视图和更新UI中删除iOS 11搜索栏

Fra*_*len 10 searchbar ios11 xcode9

在xcode 9中,当我将搜索栏放在视图中时,它会自动移动UI的其余部分.当我尝试从视图中删除搜索栏时,我得到一个黑色空间而不是正在更正的UI.我使用的是:self.navigationItem.searchController = nil.我尝试了很多东西,但是在删除搜索栏后我不知道如何更正UI.只有当我移动到另一个视图控制器并且在没有搜索栏的情况下再次返回UI是正确的.我在这里错过了什么?

码:

@IBAction func searchIconPressed(_ sender: UIBarButtonItem) {

    //ios 11
    if #available(iOS 11.0, *) {
         if self.navigationItem.searchController == nil {
            self.navigationItem.searchController = self.searchController
            self.searchController.isActive = true

        }
        else {
            self.navigationItem.searchController?.isActive = false
            self.navigationItem.searchController = nil
        }
    }
    //when ios 9-10
    else {
        if self.navigationItem.titleView == nil {
            self.navigationItem.titleView = self.searchController.searchBar
            self.searchController.isActive = true
        }
        else {
            self.navigationItem.titleView = nil
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

Fra*_*len 6

从视图中删除搜索栏并使UI再次向上移动的答案:

self.navigationItem.searchController?.isActive = false
let search = UISearchController(searchResultsController: nil)
self.navigationItem.searchController = search
self.navigationItem.searchController = nil
Run Code Online (Sandbox Code Playgroud)