为 iOS 8 创建的 UISearchController 不支持以前的版本
UISearchController created for iOS 8 not supporting for previous versions
您好,我创建了一个 UISearchController 来在我的应用程序中搜索 tableview,因为我知道 UISearchDisplay Controller 方法已被弃用 iOS 8,现在在 8.1 模拟器中一切正常,当我正在尝试 运行 我在 iPad 中的应用程序,它是 ios 版本 7.1,我发现搜索栏丢失了所以请帮助我如何创建一个支持所有 [=14] 的搜索栏=] 版本从 6.0
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
UISearchBar *searchBar = searchController.searchBar;
if (searchBar.text.length > 0) {
NSString *text = searchBar.text;
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSString *play, NSDictionary *dict) {
NSRange range = [play rangeOfString:text options:NSCaseInsensitiveSearch];
return range.location != NSNotFound;
}];
NSArray *searchResults = [self.dataARR filteredArrayUsingPredicate:predicate];
没有好的答案。
如果您想要单个实现,那么正确的当前答案是:使用UISearchDisplayController
。但是,正如您所说,这已被弃用。它现在有效,但可能在未来的某个时候消失。
其他选项:
- 为 iOS 8 个用户保留当前的
UISearchController
实施,并为 iOS 7 个用户使用 UISearchDisplayController
创建并行实施。这样做的好处是您可以在不再需要支持时删除已弃用的版本 iOS 7.
- 停止支持 iOS 7
对于我的个人项目,我通常选择选项 2,但显然,这并不总是一个选项。
您好,我创建了一个 UISearchController 来在我的应用程序中搜索 tableview,因为我知道 UISearchDisplay Controller 方法已被弃用 iOS 8,现在在 8.1 模拟器中一切正常,当我正在尝试 运行 我在 iPad 中的应用程序,它是 ios 版本 7.1,我发现搜索栏丢失了所以请帮助我如何创建一个支持所有 [=14] 的搜索栏=] 版本从 6.0
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {
UISearchBar *searchBar = searchController.searchBar;
if (searchBar.text.length > 0) {
NSString *text = searchBar.text;
NSPredicate *predicate = [NSPredicate predicateWithBlock:^BOOL(NSString *play, NSDictionary *dict) {
NSRange range = [play rangeOfString:text options:NSCaseInsensitiveSearch];
return range.location != NSNotFound;
}];
NSArray *searchResults = [self.dataARR filteredArrayUsingPredicate:predicate];
没有好的答案。
如果您想要单个实现,那么正确的当前答案是:使用UISearchDisplayController
。但是,正如您所说,这已被弃用。它现在有效,但可能在未来的某个时候消失。
其他选项:
- 为 iOS 8 个用户保留当前的
UISearchController
实施,并为 iOS 7 个用户使用UISearchDisplayController
创建并行实施。这样做的好处是您可以在不再需要支持时删除已弃用的版本 iOS 7. - 停止支持 iOS 7
对于我的个人项目,我通常选择选项 2,但显然,这并不总是一个选项。