【问题标题】:How to remove iOS 11 search bar from view and update UI如何从视图中删除 iOS 11 搜索栏并更新 UI
【发布时间】:2018-03-12 20:27:56
【问题描述】:

在 xcode 9 中,当我将搜索栏放在视图中时,它会自动向下移动 UI 的其余部分。当我尝试从视图中删除搜索栏时,我得到一个黑色空间,而不是更正 UI。我正在使用的行是:self.navigationItem.searchController = nil。我尝试了很多东西,但在删除搜索栏后我不知道如何更正 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
        }
    }
}

}

【问题讨论】:

    标签: ios11 xcode9 searchbar


    【解决方案1】:

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

    self.navigationItem.searchController?.isActive = false
    let search = UISearchController(searchResultsController: nil)
    self.navigationItem.searchController = search
    self.navigationItem.searchController = nil
    

    【讨论】:

      【解决方案2】:

      这里是目标 C

      [self.navigationItem.searchController setActive:NO];
      UISearchController *nilSearch = [[UISearchController alloc] initWithSearchResultsController:nil];
      self.navigationItem.searchController = nilSearch;
      self.navigationItem.searchController = nil;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-19
        • 1970-01-01
        • 2018-03-12
        • 2018-01-03
        • 2016-06-09
        • 2017-08-29
        • 1970-01-01
        相关资源
        最近更新 更多