我有一个带有tableview和searchbar的父类,它是tableview控制器的子类. searchBar和searchdisplaycontroller的代理设置在从UISearchdisplaycontroller继承的单独类中. tableview和searchbar的数据源和委托分别在此类中处理.这些课程属于ARC.
因此,当用户点击搜索时,控件从FilesListController(父)类转移到此类.现在,当用户点击取消按钮时,搜索栏代表在此类中设置,即
- (void)searchBarCancelButtonClicked:(UISearchBar *) searchBar
已被调用,但不用于解除全屏搜索表视图并返回到parentviewcontroller.但是,如果我不在搜索类中编写此委托,则它可以正常工作.我已经在xib和调用中设置了搜索栏委托:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar *)searchBar
像这样:
self.searchResultsTableView.delegate = self; self.searchResultsTableView.dataSource = self; [parentFileViewController.searchDisplayController setDelegate:self];
我哪里错了?提前致谢.
解决方法
如果你想用SearchBarController解雇一个UISearchBar,只需使用这个代码:
[self.searchDisplayController setActive:NO animated:YES];