In meiner Anwendung muss ich eine Aktivität ausführen, d.h. einen anderen Ansichtscontroller aufrufen, wenn ich auf ein UISearchBar klicke, das der Ansicht hinzugefügt wurde.
Was ist der beste Ansatz, um dies zu erreichen?
Eines der Dinge ist, wenn wir auf UISearchBar klicken, wird "searchBarTextDidBeginEditing" ausgelöst, aber bei meinem Szenario, wenn ich den Ansichtscontroller in "searchBarTextDidBeginEditing" aufrufe und zurückkomme, wird "searchBarTextDidBeginEditing" erneut aufgerufen, also scheint es nicht der ideale Ort zu sein, um den Ansichtscontroller aufzurufen.
Dies ist der Hauptcontroller
// 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];
Wenn ich auf UISearchBar klicke, wird dies aufgerufen
- (void)searchBarTextDidBeginEditing:(UISearchBar*)searchBar
{
[self ShowMySearch];
}
In ShowMySearch rufe ich einen anderen Controller auf, nennen wir ihn Suchcontroller, auf und wenn ich diesen Suchcontroller schließe und zum Hauptcontroller zurückkehre, wird "searchBarTextDidBeginEditing" erneut aufgerufen und der Suchcontroller wird erneut aufgerufen, was zu Problemen führt. Dieses Verhalten tritt nur bei 3.1.1 auf.
Vielen Dank,
Sagar