Активируйте переход, нажав «Поиск» на клавиатуре.

У меня есть приложение, в котором я хочу, чтобы пользователь нажимал на текстовое поле, вводил свой поисковый запрос и нажимал кнопку «Возврат» на клавиатуре (или здесь, «Поиск»). Это должно вызвать переход и отправить некоторые данные в методе prepareForSegue следующему контроллеру.

Этот метод в настоящее время запускается с помощью UIButton, и он работает нормально, но я бы хотел, чтобы то же самое происходило при нажатии кнопки «Поиск» на клавиатуре, поэтому я могу удалить кнопку и упростить процесс.

Я пытался вызвать [self prepareForSegue] в методе textFieldShouldReturn (делегата), но это не сработало.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString: @"DisplaySearchResults"]) {
        SearchResultsViewController *searchResultsViewController = [segue destinationViewController];
        searchResultsViewController.searchQuery = _searchQuery;
    }
}

person Luke    schedule 03.11.2012    source источник


Ответы (1)


Вы должны позвонить

[self performSegueWithIdentifier:@"DisplaySearchResults" sender:self];

в текстовом полеShouldReturn.

prepareForSegue будет вызываться автоматически после executeSegueWithIdentifier.

person Vito Limandibhrata    schedule 03.11.2012
comment
Это будет работать, просто убедитесь, что родительский класс является делегатом для этого UITextField. - person LJ Wilson; 03.11.2012
comment
Вы можете активировать настройку push segue в текстовом поле, просто скрыв клавиатуру. См. stackoverflow.com/questions/13837689/ - person Brad M; 03.12.2013