HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios搜索栏范围按钮不会更新结果tableview大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试在我的表视图上实现搜索栏.当用户输入文本时,过滤效果很好.当搜索栏中有文本时,范围按钮也可以工作(它通过文本过滤过滤结果).我的问题是当搜索栏中没有文字时,范围按钮不起作用.过滤方法成功过滤数组;但是tableview没有更新.我试过;

searchBar:(UISearchBar *)searchBar SELEctedScopeButtonIndexDidChange:(NSInteger)SELEctedScope

但它不起作用.我正在使用

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString {
// Tells the table data source to reload when text changes
[self filterContentForSearchText:searchString
                           scope:[[self.searchDisplayController.searchBar scopeButtontitles] objectATindex:[self.searchDisplayController.searchBar SELEctedScopeButtonIndex]]];
// Return YES to cause the search result table view to be reloaded.
return YES;

}

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption {
// Tells the table data source to reload when scope bar SELEction changes
[self filterContentForSearchText:self.searchDisplayController.searchBar.text
                           scope:[[self.searchDisplayController.searchBar scopeButtontitles] objectATindex:searchOption]];
// Return YES to cause the search result table view to be reloaded.
return YES;

}

用于文本过滤.我也尝试重新加载数据,它也没有工作.我无法弄清楚为什么在文本更改后tableview更新但在范围栏更改后它没有更新.

解决方法

解决了这个问题.我不再使用searchDisplayController,而是使用textDidChange和SELEctedScopeButtonIndexDidChange.而不是使用两个表视图(normal和self.searchDisplayController.searchResultsTableView)我正在使用单表视图并且我更改其数据源,现在看来这解决了我的问题.但仍然无法弄清楚为什么应该调用divoadTableForSearchScope:不调用cellForRowATindexPath:并更新我的表视图

大佬总结

以上是大佬教程为你收集整理的ios搜索栏范围按钮不会更新结果tableview全部内容,希望文章能够帮你解决ios搜索栏范围按钮不会更新结果tableview所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。