2010-08-25 21 views
9

'u vurduğumuzda hangi olayı çağırmalıyım? Uygulamamda, görünümünde eklenen bir UISearch çubuğunu tıklattığımda, başka bir etkinleştirme denetleyicisini zorlamak için biraz etkinlik yapmam gerekiyor. Bunu sağlamak için en iyi yaklaşım hangisidir? şey biri olarakUISearchBar

biz görünümü itmek için ideal bir yer değil öyle görünüyor, ama benim senaryo ile ben "searchBarTextDidBeginEditing" görünümü denetleyicisi itmek ve searchBarTextDidBeginEditing tekrar denilen olsun geri döndüğümde, UISearchBar click "searchBarTextDidBeginEditing" kovulunca olduğunu kontrol ünitesi.

Bu maincontroller olan

// Search bar 
    iSearchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, 40)]; 
    iSearchBar.delegate = self; 
    iSearchBar.showsCancelButton = NO; 
    iSearchBar.autocorrectionType = UITextAutocorrectionTypeNo; 
    iSearchBar.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
    [self addSubview:iSearchBar]; 

Ben UISearchBar tıklayın pop bu searchcontroller ve geri maincontroller geldiklerinde o zaman ben başka kontrolör searchcontroller Diyelim İtiyorum, ShowMySearch yılında

- (void)searchBarTextDidBeginEditing:(UISearchBar*)searchBar 
    { 
    [self ShowMySearch]; 
    } 

çağırır ve ne zaman "searchBarTextDidBeginEditing" yeniden arama yapın ve searchcontroller yeniden basılarak soruna neden oluyor. Bu davranış ı "searchBarTextDidBeginEditing" in [kendini ShowMySearch] çağıran düşünüyorum, sadece 3.1.1

Teşekkürler

Sagar

+0

Daha fazla bilgi yararlı olabilir –

+0

daha fazla bilgi eklendi. –

cevap

15

görülen çok geç biraz edilir. "searchBarTextDidBeginEditing" ifadesinin, arama çubuğuna yanıt vermesi ilk yanıtlayıcı olarak çağrıldığını varsayalım. Arama denetleyicisine basıldığında ilk yanıtlayıcı olduğundan, arama denetleyiciniz açıldığında muhtemelen ilk yanıtlayıcı olur ... böylece "searchBarTextDidBeginEditing" ifadesini tekrar çağırır. o olur önce arama çubuğu dokunulduğunda sonra bu yöntem (UISearchBar *) Searchbar

denir ama:

  • (BOOL) searchBarShouldBeginEditing:

    Bunu başarmak için, ben kullanırım ilk cevaplayan. Ve eğer HAYIR'ı döndürürseniz, bu asla ilk cevaplayıcı olmayacaktır:

    - (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar { 
        [self ShowMySearch]; 
        return NO; 
    } 
    

    Bu işe yararsa bana bildirin!

+0

Teşekkürler Eric. Mükemmel çalışıyor. –

+0

teşekkürler Eric Morand. benim için çalışıyor – jpd

İlgili konular