【发布时间】:2016-12-31 01:49:13
【问题描述】:
在UITableViewController 的自定义子类的viewDidLoad 中,我将navigationItem.titleView 设置为UISearchController 的searchBar,我用nil 为searchResultsController 初始化了它。
当我点击搜索栏,输入文本,然后点击变暗的底层内容时,UISearchController 会被停用(如预期的那样)并且我输入的搜索文本会被清除(意外)。
当我明确(以编程方式)将搜索控制器设置为非活动时,搜索文本也被清除(也是意外)。为了解决这个问题,我之前存储了搜索文本,并在关闭搜索控制器后将其设置回来。虽然 hacky,但它确实有效。
let searchText = searchBar.text // #hack
searchController.isActive = false
searchBar.text = searchText // #hack
当搜索控制器被自动关闭时,我尝试了使用UISearchControllerDelegate 方法的类似方法,即将搜索文本存储在willDismissSearchController(_:) 中并将其设置回didDismissSearchController(_:)。但是,这个解决方案仍然显示搜索文本被清除,然后恢复到以前的状态。
当搜索控制器自动关闭时,如何无缝保持搜索栏文本不变?
【问题讨论】:
-
uisearchbar 委托。
-
搜索栏的代理如何阻止搜索控制器清除其文本?
-
uisearchbar 委托方法我有演示但现在我不在电脑附近
-
也许您应该创建一个自定义搜索控制器并向其添加自定义搜索栏属性。然后为搜索控制器和搜索栏声明自定义委托。
-
子类
UISearchBar?
标签: ios uikit uisearchbar uisearchcontroller