У меня есть UITableViewController, и я хочу добавить UISearchBarController вверху, чтобы он выполнял поиск в другом представлении таблицы (а не в табличном представлении UITableViewController).Добавить UISearchBarController в UITableViewController без IB
Как я могу инициализировать это с помощью кода и без IB?
@interface mySearchController : UITableViewController <UISearchDisplayDelegate, UISearchBarDelegate>
@property (nonatomic, retain) UISearchDisplayController *aSearchBarController;
@property (nonatomic, retain) UISearchBar *aSearchBar;
@end
- (id)init {
if ((self = [super init])) {
UISearchBar *tempSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)];
self.aSearchBar = tempSearchBar;
self.aSearchBar.delegate = self;
[self.aSearchBar sizeToFit];
self.tableView.tableHeaderView = self.aSearchBar;
[self.aSearchBar release];
UISearchDisplayController *tempSearchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:aSearchBar contentsController:self];
self.searchDisplayController = tempSearchDisplayController;
self.searchDisplayController.delegate = self;
self.searchDisplayController.searchResultsDataSource = self;
self.searchDisplayController.searchResultsDelegate = self;
}
return self;
}
- (id)initWithStyle:(UITableViewStyle)style {
self = [super initWithStyle:UITableViewStyleGrouped];
if (self) {
// Custom initialization.
}
return self;
}
Спасибо, я добавил код на вопрос. Правильно ли я это делаю? – Jon
Все выглядит правильно, за исключением того, что я бы выполнил настройку в '-viewDidLoad', чтобы гарантировать, что табличное представление, которое вы добавляете в него, не равно нулю. Кроме того, вам не нужно назначать 'self.searchDisplayController', поскольку он обрабатывается' initWithSearchBar: contentController: '. Контроллер, переданный в 'contentController', автоматически получит свой набор' searchDisplayController'. –
Теперь я уверен, что должен выглядеть мой IB, я решил сделать это в IB. По сути, у меня есть таблица с четырьмя строками, каждая из четырех строковых функций - как фильтр для поиска. При нажатии кнопки 4 строки имеют галочку. Затем при поиске вы увидите результаты. У меня все работает, кроме обновления таблицы после поиска. Можете ли вы сказать мне, если я на правильном пути? Я загрузил pic выше макета IB-файла. – Jon