6

Używam UISearchDisplayController z UISearchBar. Ja to UISearchBar w mojej aplikacji przy użyciu IB i uzyskać:UISearchDisplayController automatycznie tworzy kontroler UIPopover, aby wyświetlić wynik wyszukiwania zawartości?! Jak to zignorować?

alt text http://img6.imageshack.us/img6/1985/screenshot20100701at156.png

dobrze: po uruchomieniu taping The popovercontroller wynik pojawia się w magiczny (nie pisałem nic na własną rękę, aby pojawić się!)

Wtedy, gdy wiersz kliknięciu wśród wyniku, chcę odwołać PopoverController BUT na tym etapie, nigdy nie wystąpienia z UIPopoverController na mojej stronie: wygląda na to, czy jest hermetyczną zachowanie w UISearchDisplayController które automatycznie opakowuje swój searchContentsController wewnątrz UIPopoverController. To naprawdę świetne, ponieważ wszystko działa idealnie, nie robiąc nic poza tym, że nie mogę się odniesienie do niniejszego UIPopoverController odrzucić to :(

Czy ktoś wie jak uzyskać odniesienie do tego „magicznie” stworzonego UIPopoverController? (ta jest dowodem, że iPad jest naprawdę "magicznym" urządzeniem;)

Myślałem, że będzie odniesienie do UIPopoverController z jego contentController (poprzez jego właściwość nadrzędna na przykład), ale nie mogę znaleźć żadnego sposobu, aby uzyskać wskaźnik do:/

+0

Próbowałem też zrezygnować z paska wyszukiwania jako pierwszy odpowiadającego, ale popover pozostaje widoczny :( – yonel

Odpowiedz

11

Czy nie działa wtedy [searchDisplayController setActive:NO animated:YES];?

+0

Wiesz co? Właśnie myślałem o próbowaniu tego, ale wcześniej, sprawdziłem, czy ktoś odpowiedział na pytanie n SO i tak, masz rację, to działa! Cieszę się, że mogę dać Tobie +100 tuż przed terminem! : p – yonel

+1

Cieszę się, że mogę pomóc. Nawet nie sprawdziłem, czy to działa, ale po prostu spojrzał na dokumentację deweloperską Apple. ;) – jrtc27

+0

Dziękujemy! To działało idealnie! – ArtSabintsev

0

Czy możesz dodać więcej informacji o tym, jak się masz czy podłączyłeś UISearchDisplayController do IB? Nie robi nic specjalnego z UIPopoverControllers na iPadzie, więc zakładam, że ustawiłeś searchContentsController na kontroler, który jest kontrolerem UIPopoverController? Jeśli tak, to masz już potrzebne odwołanie, chociaż zwykle nie musisz odrzucać tego widoku, jest on odrzucany, gdy anulujesz wyszukiwanie.

+0

UISearchDisplayController nie jest połączone z niczym szczególnym: http://bit.ly/ bESjTT Przesłałem bardzo prosty projekt XCode, który izoluje przypadek użycia na http://bit.ly/aG3qAY Jest to po prostu przykład projektu kontrolera widoku Split z dodanym UISearchDisplayController.W tym projekcie nie utworzono instancji UIPopoverController:/SearchContentController jest ustawiony na UIViewController, a nie na UIPopoverCOntroller – yonel

1

Żadne z powyższych rozwiązań nie pracował dla mnie, ale rozwiązał go w ten sposób:

[self.searchDisplayController setActive:NO animated:YES]; 
    [searchBar becomeFirstResponder]; 

ten sposób kursor pozostaje w tej dziedzinie, ale popover zostaje odrzucona, gdy nie ma żadnych wyników.

Pełny kod:

- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText { 
    if ([searchText isEqualToString:@""]) { 
     [self.searchDisplayController setActive:NO animated:YES]; 
     [searchBar becomeFirstResponder]; 
    } 
} 
Powiązane problemy