Pracuję nad aplikacją paska kart, a jedna z kart ma narzędzie UISearchDisplayController podłączone do karty UISearchBar. Wszystko jest połączone w NIB i działa. Kiedy pukam w pasek wyszukiwania, przyciski Zakres i Anuluj latają itd., A delegat wyszukiwania prawidłowo aktualizuje tabelę wyników.UISearchDisplayController nie działa po utworzeniu w kodzie?
Jednak próbuję zaimplementować ten sam kod w komunikacie viewDidLoad
zamiast NIB, jednak gdy usuwam kontroler wyświetlania wyszukiwania z NIB i odkomentowuje mój kod, aby utworzyć ten sam kontroler w funkcji, robi to nie działa. Wygląda to tak, jakby nie było żadnego podstawowego połączenia, aby cała funkcja delegowania wyszukiwania nie była wywoływana.
Oto moja robocza wersja NIB dla Search Display Controller. Jest podłączony do paska wyszukiwania, podklasa UINavigationController
(), a widok główny tego jest podłączony jako searchContentsController
.
alt text http://img192.imageshack.us/img192/3050/screenshot20100307at304.png
Teraz to jest to, czego można oczekiwać, aby zrobić w kodzie, aby stworzyć to samo, prawda? To, co robię, to opuszczenie UISearchBar w NIB, aby wyeliminować jeden element układanki naraz w kodzie.
// [MASearchController viewDidLoad]
UISearchDisplayController *searchController = [[[UISearchDisplayController alloc]
initWithSearchBar:searchBar
contentsController:[[self viewControllers] objectAtIndex:0]] autorelease];
[searchController setDelegate:self];
[searchController setSearchResultsDelegate:self];
[searchController setSearchResultsDataSource:self];
Sprawdziłem wszystkie obiekty w czasie wykonywania i wszystkie zostały sprawdzone. Zasadniczo usunąłem kontroler wyświetlania wyszukiwania z NIB, a następnie wstawiam kod, aby utworzyć go w wiadomości viewDidLoad
.
Dlaczego to nie zadziałało? Pojawia się klawiatura wyszukiwania, ale żadna z funkcji wyszukiwania i animacji przycisków nie działa?
Wystąpiłam z tym samym problemem. Dzięki za zamieszczenie tego! – DOOManiac