В моем приложении мне нужно выполнить какое-то действие, например, нажать контроллер другого представления, когда я щелкаю панель UISearch, которая добавляется в представление.
Что является лучшим подходом для достижения этой цели.
Например, когда мы нажимаем UISearchbar, «searchBarTextDidBeginEditing» запускается, «searchBarTextDidBeginEditing» снова получает вызов, и searchcontroller снова выдвигается и вызывает проблему. это поведение наблюдается только в 3.1.1
Спасибо,
Сагар
Я думаю, что вызывать [self ShowMySearch] в "searchBarTextDidBeginEditing" слишком поздно. Я полагаю, что «searchBarTextDidBeginEditing» вызывается в ответ на то, что панель поиска становится первым ответчиком. Поскольку это первый ответчик, когда контроллер поиска нажат, он, вероятно, снова станет первым ответчиком, когда ваш контроллер поиска выскочит... таким образом, снова вызывая "searchBarTextDidBeginEditing".
Для этого я бы использовал :
Этот метод вызывается после нажатия на панель поиска, но до того, как она станет первым респондентом. И если вы вернете НЕТ, он никогда не станет первым ответившим:
- (BOOL)searchBarShouldBeginEditing:(UISearchBar*)searchBar {
[self ShowMySearch];
return NO;
}
Дайте мне знать, если это сработает!