繁体   English   中英

Objective-c updateSearchResultsForSearchController 没有被调用

[英]Objective-c updateSearchResultsForSearchController not getting called

我正在尝试将搜索功能应用于我的 UITableView。 我在层板场景中添加了一个搜索栏,如下所示:

在此处输入图片说明

然后在我的头文件中,我像这样添加了 UISearchControllerDelegate 和 UISearchController:

@interface LHFileBrowser : UITableViewController UISearchControllerDelegate>

@property(nonatomic, retain) NSArray * tableData;
@property (strong, nonatomic) IBOutlet UINavigationBar *NavBar;
@property (strong, nonatomic) NSArray *results;
@property (strong, nonatomic) UISearchController *controller;

@end

我将我的 updateSearchResultsForSearchController 方法添加到 .m 文件

- (void)updateSearchResultsForSearchController:(UISearchController *)searchController {


    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains [c] %@", self.controller.searchBar.text];

    self.results = [self.tableData filteredArrayUsingPredicate:predicate];

}

我在 NSPredicate 上设置了一个断点,当我尝试使用我的搜索栏时,我什么也没得到,它没有达到我的断点,因此没有调用 updateSearchResultsForSearchController。 有什么我想念的吗?

您需要将 TableViewController 设置为许多事情的委托,因此在viewDidLoad添加:

self.controller.searchResultsUpdater = self;
self.controller.delegate = self;
self.controller.searchBar.delegate = self;

您的界面中还有一个错字,在UISearchControllerDelegate之前应该有一个<

searchController ,我建议更改controller -> searchController以使您的代码不那么混乱。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM