2010-03-31 29 views
6

Mam kontroler widoku, w widoku umieściłem widok tabeli, a pasek wyszukiwania w nagłówku tabeli ... pasek wyszukiwania nie jest wyświetlany, tylko pusty widok tabeli.UISearchBar Nie pojawia się

Czy muszę zrobić coś dodatkowego? Jestem całkiem się jej zrobić z wylotem z view z UIViewController, zestaw do View ...

Dzięki

Odpowiedz

-1

Stałe użyciu UISearchBar ze sterownikiem.

8

Dla każdego, kto może wylądować w tym pytaniu, miałem bardzo podobną sytuację, w której nie wyświetlał się element UITableViewController z dodanym paskiem UISearchBar. Jeśli znajdziesz się w takiej sytuacji, dokładnie sprawdzić, że faktycznie dzwoni:

initWithNibName:@"MyNibName" bundle:nil 

init kontrolera widoku zamiast wspólnej Table View init:

initWithStyle:UITableViewStylePlain 

ja głupio dodając wyszukiwanie do stalówki, a następnie ładowanie jej za pomocą stylu init (który całkowicie pomija pióra i ładuje widok tabeli od podstaw)

+0

pomogło to, że mijał nil do initWithNibName, który zazwyczaj pracuje, ale za UITableViewControllers wydaje nie. –

0

Jeśli ustawisz kontroler widoku jako część kontrolera kart, oprócz właściwości "Klasa" w IB ustawi właściwość "Nazwa NIB". Zajmuje mi to kilka godzin.

2

spróbuj ustawić tableHeaderView swojej tablicy Wyświetl do paska wyszukiwania.

self.tableView.tableHeaderView = searchBar; 

Jeśli korzystasz z IB, pamiętaj o podłączeniu gniazdek tak, aby się do nich odwoływały.

2

Spróbuj tego, l pracował dla mnie:

- (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); 
}