Привет, я использую UISerchbar
в tableview
, но есть ли простой способ создать пользовательский searchbar
в tableview headerview
?Пользовательская панель поиска в iOS
Я уже проверяю ссылку ниже, но я не понимаю.
Custom UISearchBar with UISearchController
How do I use the UISearchBar and UISearchDisplayController
Я добавил searchDisplayController::
И Это мой код для searchController,
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.searchController.searchBar.delegate = self;
self.definesPresentationContext = YES;
[self.searchController.searchBar setBarTintColor:[UIColor darkGrayColor]];
self.tableView.tableHeaderView = self.searchController.searchBar;
Я поставил делегат для UISearchBarDelegate,UISearchResultsUpdating
, а также,
и реализовать свой метод,
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
if (_searchController.isActive && _searchController.searchBar.text.length >0){
NSPredicate *resultPredicate = [NSPredicate
predicateWithFormat:@"SELF.name contains[cd] %@",
searchText];
abcd = [sortedEventArray filteredArrayUsingPredicate:resultPredicate];
NSLog(@"%@",searchResults);
}
}
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController1
{
NSString *searchString = searchController1.searchBar.text;
[self filterContentForSearchText:searchString scope:@"abc"];
//[self filterContentForSearchText:searchString :@"abc"];
[self.tableView reloadData];
}
отменить событие кнопки
- (void)searchBarCancelButtonClicked:(UISearchBar *)searchBar
{
abcd=[sortedEventArray mutableCopy];
[_tableView reloadData];
}
-(void)delete{
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest * allMovies = [[NSFetchRequest alloc] init];
[allMovies setEntity:[NSEntityDescription entityForName:@"Data" inManagedObjectContext:context]];
[allMovies setIncludesPropertyValues:NO]; //only fetch the managedObjectID
NSError * error = nil;
NSArray * movies = [context executeFetchRequest:allMovies error:&error];
//error handling goes here
for (NSManagedObject * movie in movies) {
[context deleteObject:movie];
}
NSError *saveError = nil;
[context save:&saveError];
}
Еще ее не работает
Заранее спасибо :)
Я работал над этим в течение длительного времени и, наконец, решил, что было бы проще просто поместить строку поиска в представлении прямо над столом , С автоматическим выводом легко управлять позиционированием и получать заголовок для позиционирования в одном и том же месте в любое время, IIRC, была проблема. Я сдался. Удачи в поиске обходного пути (я думаю, что я был на ios7 в то время). – RegularExpression