Note that there are some explanatory texts on larger screens.

plurals
  1. POUnable to use searchbar to filter tableview
    primarykey
    data
    text
    <p>I am trying to filter tableview with search bar. I have written all necessary methods. </p> <p>My code is as below:</p> <p>What is wrong with it?? Please help me, i could not find the solution.</p> <p>There should be something that I am missing</p> <pre><code>@implementation ApothekeViewController @synthesize tableView,searchBar,mapView,eczaneler,eczanelerTemp,locationManager,searchDispController,filteredListContent,isFiltered,tableViewController; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { tableViewController = [[UITableViewController alloc] init]; tableViewController.tableView.delegate = self; tableViewController.tableView.dataSource = self; [tableViewController.tableView reloadData]; tableViewController.tableView.frame = CGRectMake(0,66 ,320.0, 768.0); // tableView = [[UITableView alloc]init]; //tableView.frame = CGRectMake(0,66 ,320.0, 768.0); //tableView.delegate = self; //tableView.dataSource = self; [self.view addSubview:tableViewController.tableView]; searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; searchBar.placeholder = @"Arama" ; searchBar.delegate = self; UISearchDisplayController *searchCon = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:tableViewController]; self.searchDispController = searchCon; searchDispController.delegate = self; searchDispController.searchResultsDataSource = self; searchDispController.searchResultsDelegate = self; //searchBar.showsCancelButton = YES; tableViewController.tableView.tableHeaderView = searchBar; NSDate *now = [NSDate date]; NSDateFormatter *formatter = [[NSDateFormatter alloc] init ] ; [formatter setDateFormat:@"dd MMMM yyyy, EEEE"]; [formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Australia/Sydney"]]; NSString *strSelectedDate= [formatter stringFromDate:now]; UINavigationBar *naviBarObj = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 1024, 55)]; UILabel *date = [[UILabel alloc] initWithFrame:CGRectMake(760,25,400,30)]; date.text = strSelectedDate; date.textColor = [UIColor whiteColor]; [date setFont:[UIFont fontWithName:@"Arial" size:25]]; [naviBarObj addSubview:date]; [date setBackgroundColor:[UIColor clearColor]]; naviBarObj.topItem.titleView = date; UILabel *title = [[UILabel alloc] initWithFrame:CGRectMake(60,5,400,50)]; title.text = @"En Yakın Eczane"; title.textColor = [UIColor whiteColor]; [title setFont:[UIFont fontWithName:@"Arial" size:40]]; [naviBarObj addSubview:title]; [title setBackgroundColor:[UIColor clearColor]]; naviBarObj.topItem.titleView = title; UIBarButtonItem *btnCancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel_Clicked:)]; naviBarObj.topItem.leftBarButtonItem = btnCancel; [self.view addSubview:naviBarObj]; } return self; } - (void)viewDidLoad { [super viewDidLoad]; mapView = [[MKMapView alloc] initWithFrame:CGRectMake(320, 66, 704, 705)]; mapView.delegate = self; [self.view addSubview:mapView]; mapView.showsUserLocation = YES; eczanelerTemp = [[NSMutableArray alloc]init]; self.eczaneler = [[NSMutableArray alloc] init]; Eczane *eczane1 = [[Eczane alloc] init]; eczane1.customerName = @"Duyarlı Eczanesi"; eczane1.customerID = @"mohammed@gmail.com"; eczane1.longitude = @"29.0312"; eczane1.latitude = @"41.109817"; Eczane *eczane2 = [[Eczane alloc] init]; eczane2.customerName = @"Azim Eczanesi Azim"; eczane2.customerID = @"azim@gmail.com"; eczane2.longitude = @"30.0312"; eczane2.latitude = @"41.109817"; [self.eczaneler addObject:eczane1]; [self.eczaneler addObject:eczane2]; Eczane *eczane3 = [[Eczane alloc] init]; eczane3.customerName = @"Optik Eczanesi"; eczane3.customerID = @"optik@gmail.com"; eczane3.longitude = @"29.0352"; eczane3.latitude = @"40.109817"; [self.eczaneler addObject:eczane3]; for(int i=0; i&lt;[eczaneler count];i++) { Eczane *temp = [self.eczaneler objectAtIndex:i]; CLLocationCoordinate2D coordinate; coordinate.longitude = [temp.longitude floatValue]; coordinate.latitude = [temp.latitude floatValue]; CustomAnnotation *point = [[CustomAnnotation alloc] init]; point.coordinate = coordinate; [self.mapView addAnnotation:point]; } } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.mapView.delegate = self; [self.mapView setShowsUserLocation:YES]; return YES; } - (MKAnnotationView *)mapView:(MKMapView *)mapView2 viewForAnnotation:(id &lt;MKAnnotation&gt;)annotation { if ([annotation isKindOfClass:[MKUserLocation class]]) { return nil; } else if ([annotation isKindOfClass:[CustomAnnotation class]]) { static NSString * const identifier = @"MyCustomAnnotation"; MKAnnotationView* annotationView = [mapView2 dequeueReusableAnnotationViewWithIdentifier:identifier]; if (annotationView) { annotationView.annotation = annotation; } else { annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier]; } // set annotationView properties UIImageView * ecz = [[UIImageView alloc]init]; ecz.frame = CGRectMake(0, 0, 65, 49); ecz.image = [UIImage imageNamed:@"indicator.png"]; UIImageView * vstd = [[UIImageView alloc]init]; vstd.frame = CGRectMake(33, 10, 24, 22); vstd.image = [UIImage imageNamed:@"indicator_ziyaret_gri"]; UIImageView * nbox = [[UIImageView alloc]init]; nbox.frame = CGRectMake(48, -6, 22, 22); nbox.image = [UIImage imageNamed:@"numara_kutusu"]; [annotationView addSubview:ecz]; [annotationView addSubview:vstd]; UILabel *index = [[UILabel alloc] initWithFrame:CGRectMake(5,4,15,15)]; // index.text =[NSString stringWithFormat:@"%d", iterator ]; index.textColor = [UIColor whiteColor]; [index setFont:[UIFont fontWithName:@"Arial-BoldMT" size:18]]; [nbox addSubview:index]; [index setBackgroundColor:[UIColor clearColor]]; [annotationView addSubview:nbox]; //annotationView. = [UIImage imageNamed:@"indicator.png"]; annotationView.canShowCallout = YES; return annotationView; } return nil; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { if (self.tableViewController.tableView == self.searchDisplayController.searchResultsTableView) { return [filteredListContent count]; } else { return [eczaneler count]; } } -(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { return 110; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSLog(@"cellForRowAtIndexPath"); static NSString *CellIdentifier = @"EczaneCell"; EczaneCell *cell = (EczaneCell *) [self.tableViewController.tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[EczaneCell alloc] initWithFrame:CGRectZero] autorelease]; } Eczane *eczane = [[Eczane alloc]init]; if (self.tableViewController.tableView == self.searchDisplayController.searchResultsTableView) { eczane = [self.filteredListContent objectAtIndex:[indexPath row]]; } else { eczane = [self.eczaneler objectAtIndex:[indexPath row]]; } cell.circleIndex.text = [NSString stringWithFormat:@"%d", ([indexPath row]+1)]; cell.cellName.text = eczane.customerName; return cell; } -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //EczaneCell *cell = [tableView cellForRowAtIndexPath:indexPath]; Eczane *eczane = [self.eczaneler objectAtIndex:[indexPath row]]; CLLocationCoordinate2D coordinate; coordinate.longitude = [eczane.longitude floatValue]; coordinate.latitude = [eczane.latitude floatValue]; MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(coordinate, 2000, 2000); [mapView setRegion:region animated:YES]; } #pragma mark - #pragma mark UISearchDisplayController Delegate Methods - (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString { [filteredListContent removeAllObjects]; for (Eczane *eczObj in eczaneler) { NSComparisonResult result = [eczObj.customerName compare:searchString options:(NSCaseInsensitiveSearch|NSDiacriticInsensitiveSearch) range:NSMakeRange(0, [searchString length])]; if (result == NSOrderedSame) { [self.filteredListContent addObject:eczObj]; } } [self.searchDispController.searchResultsTableView reloadData]; //[self.tableViewController.tableView reloadData]; //[self.tableViewController.tableView] = [self.searchDispController.searchResultsTableView ]; [self.tableViewController.tableView reloadData]; [searchDispController.searchResultsTableView setFrame:CGRectMake(0, 44, 320, [filteredListContent count]*(searchDispController.searchResultsTableView.rowHeight))]; return YES; } @end </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload