超出范围时,UISearchController 未正确关闭
UISearchController not properly dismissing when going out of scope
我正在将搜索功能构建到我的应用程序中,该应用程序主要由 UITableView 组成。我已经成功添加了一个搜索栏,并且可以正确搜索项目,但是当我设置 controller.dimsBackgroundDuringPresentation = false
时,事情变得很奇怪。问题是,我确实希望这个布尔值是假的,因为用户应该能够滚动浏览结果和 select 结果以查看更多详细信息。
我看到的行为如下:搜索栏永远不会自行关闭,除非您按下 Cancel
按钮,这意味着当我 select 我的 [=27] 中的一个单元格时=] 视图以显示该单元格的详细信息,搜索栏会转移到该视图中,如下所示:
我按如下方式初始化我的搜索控制器:
self.searchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.hidesNavigationBarDuringPresentation = false
controller.searchBar.searchBarStyle = .Minimal
controller.delegate = self
self.tableView?.tableHeaderView = controller.searchBar
return controller;
})()
虽然搜索本身有效(updateSearchResultsForSearchController
被调用,我应用我的搜索和 return 一个数组等),但我似乎无法以任何方式使用搜索,因为如果我在搜索时select一个单元格,会出现上图,但如果我按取消,我的搜索就会被清除。任何帮助将不胜感激。
您应该在 viewDidLoad()
中添加以下行
definesPresentationContext = true
我正在将搜索功能构建到我的应用程序中,该应用程序主要由 UITableView 组成。我已经成功添加了一个搜索栏,并且可以正确搜索项目,但是当我设置 controller.dimsBackgroundDuringPresentation = false
时,事情变得很奇怪。问题是,我确实希望这个布尔值是假的,因为用户应该能够滚动浏览结果和 select 结果以查看更多详细信息。
我看到的行为如下:搜索栏永远不会自行关闭,除非您按下 Cancel
按钮,这意味着当我 select 我的 [=27] 中的一个单元格时=] 视图以显示该单元格的详细信息,搜索栏会转移到该视图中,如下所示:
我按如下方式初始化我的搜索控制器:
self.searchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.hidesNavigationBarDuringPresentation = false
controller.searchBar.searchBarStyle = .Minimal
controller.delegate = self
self.tableView?.tableHeaderView = controller.searchBar
return controller;
})()
虽然搜索本身有效(updateSearchResultsForSearchController
被调用,我应用我的搜索和 return 一个数组等),但我似乎无法以任何方式使用搜索,因为如果我在搜索时select一个单元格,会出现上图,但如果我按取消,我的搜索就会被清除。任何帮助将不胜感激。
您应该在 viewDidLoad()
definesPresentationContext = true