#ios #objective-c #uitableview #uisearchbar
#iOS #objective-c #uitableview #панель пользовательского поиска
Вопрос:
Я разрабатываю приложение для iPhone, в котором я застрял в какой-то момент.
У меня есть один ViewController со скрытой панелью навигации, а панель поиска находится в центре страницы.
когда пользователь нажимает на панель поиска searchBarTextDidBeginEditing
, запускается метод.
после этого при изменении текста в методе SearchBar textDidChange
SearchBar я загружаю текущие данные в tableview, а при нажатии на tableview я перехожу на другую страницу с не скрытой панелью навигации.
Теперь, когда я снова нажимаю кнопку «Назад», я перехожу на страницу поиска здесь searchBarTextDidBeginEditing
, метод снова запускается.
Почему этот метод снова вызывается при обратном нажатии?
Пожалуйста, помогите и заранее спасибо.
Ответ №1:
Ваш SearcBarTextDidBeginEditing
вызван из-за того, что ваш контроллер отображения поиска все еще находится в активном режиме,
В вашем методе делегирования TableView,
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
[self.view endEditing:YES];
[self.searchDisplayController.searchBar resignFirstResponder];
// Set Navigation
}
И в том же классе в представлении появится SET,
-(void)viewWillAppear:(BOOL)animated{
self.searchDisplayController.Active = NO;
}
Надеюсь, это поможет вам!
Комментарии:
1. Если это поможет вам, вы можете принять его как правильный для ссылки на других.
Ответ №2:
Я думаю, что UITextField сохраняет фокус на себе при навигации.
Попробуйте [textField resignFirstResponder]
при нажатии на ваш TableView перейти.