Ajout de UISegmentedControl dans UISearchDisplayController

Je veux append le UISegmentedControl ci-dessous le searchBar et au-dessus du TableView de UISearchDisplayController . Actuellement, UISearchDisplayController affiche uniquement sa tableView sous son SearchBar .

Mais je veux append un UISegmentedControl dessous de la SearchBar sorte que j'ai SearchBar sur le dessus, après SearchBar j'ai un UISegmentedControl et en dessous de ce UISegmentedControl j'ai UITableView . Est-ce un moyen de le faire en utilisant UISearchDisplayController ou je dois faire mon propre SearchDisplayController qui ont ses propres SearchBar , UISegmentedControl et TableView ?

toute suggestion? Merci

Activer ShowScopeBar et append autant de segments en ajoutant des titres de scop et les gérer en suivant la méthode

Par code

 UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; [searchBar setShowsScopeBar:YES]; [searchBar setScopeButtonTitles:@[@"button1",@"button2"]]; [[self view] addSubview:searchBar]; 

Par XIB

entrez la description de l'image ici

Méthode déléguée pour gérer l'action du button d'étendue

 - (void)searchBar:(UISearchBar *)searchBar selectedScopeButtonIndexDidChange:(NSInteger)selectedScope{ } 

Créer une vue dans la table

 UIView *viewsearch=[[UIView alloc]initWithFrame:CGRectMake(0,-10, 320,83)]; [self.tblname addSubview:viewsearch]; [self.view addGestureRecognizer:revealController.panGestureRecognizer] UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0,5, 320, 40)]; searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; searchBar.delegate=self; [searchBar setBarTintColor:[UIColor colorWithRed:(249/255.0) green:(9/255.0) blue:(99/255.0) alpha:1]]; searchBar.tintColor = [UIColor whiteColor]; searchBar.placeholder = @"Search items eg jacket"; 

Ajouter la vue de la barre de search dans cette vue.

  [viewsearch addSubview:searchBar]; searchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 

Utilisez UISegmentedControl dans cette vue de search.

  NSArray *itemArray = [NSArray arrayWithObjects: @"General", @"Near me", nil]; UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray]; segmentedControl.frame = CGRectMake(50,53, 225, 22); segmentedControl.segmentedControlStyle = UISegmentedControlStylePlain; [segmentedControl addTarget:self action:@selector(MySegmentControlAction:) forControlEvents: UIControlEventValueChanged]; segmentedControl.selectedSegmentIndex = 0; segmentedControl.tintColor = [UIColor colorWithRed:(249/255.0) green:(10/255.0) blue:(99/255.0) alpha:1]; segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin; [viewsearch addSubview:segmentedControl]; 

Je trouve la solution pour mon problème que j'ai ajouté le UISegmentedControl comme en-tête de TableView de UISearchDisplayController. De cette façon, il semblait juste que j'ai ajouté un UISegmentedControl séparément sous le searchBar de UISearchDisplayController.

Merci à tous ceux qui ont essayé d'aider.