2010-03-31 6 views
6

J'ai le contrôleur, dans la vue j'ai mis une vue de table, et une barre de recherche dans l'en-tête de la table ... la barre de recherche n'apparaît pas, juste la vue de table vide.UISearchBar N'apparaissant pas

Dois-je faire quelque chose de plus? Je suis sûr que ce à voir avec la sortie view du UIViewController, mis à View ...

Merci

Répondre

-1

fixe à l'aide d'un UISearchBar avec le contrôleur.

8

Pour tous ceux qui pourraient se poser sur cette question, j'ai eu une situation très similaire où un UITableViewController avec un UISearchBar ajouté ne s'affichait pas. Si vous vous trouvez dans cette situation, vérifiez que vous appelez réellement:

initWithNibName:@"MyNibName" bundle:nil 

init votre contrôleur de vue au lieu de la commune Tableau init:

initWithStyle:UITableViewStylePlain 

J'ajoutais bêtement la recherche barre à la plume, puis le charger avec le style init (qui ignore entièrement la plume et charge la vue de table à partir de zéro)

+0

Cela a permis, je passais nulle à initWithNibName, qui travaille habituellement mais pour UITableViewControllers il semble pas. –

0

Si vous définissez votre contrôleur de vue comme partie du contrôleur de barre d'onglets, en plus de la propriété "Classe" dans IB définit la propriété "Nom NIB". Cela me prend plusieurs heures pour le comprendre.

2

essayez de définir la tableHeaderView de votre tableView à votre SearchBar. Si vous utilisez IB, assurez-vous de connecter les prises afin qu'elles soient référencées.

2

Essayez cela, l il a fonctionné pour moi:

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    self.tableView.tableHeaderView = _searchBar; 
    [_searchBar becomeFirstResponder]; 
} 

- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { 
    [_searchBar resignFirstResponder]; 
    self.tableView.tableHeaderView = _searchBar; 
} 

-(void) scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    searchBar.frame = CGRectMake(0,MAX(0,scrollView.contentOffset.y),320,44); 
}