2012-11-03 116 views
1

我有一個應用程序,我希望用戶點擊文本字段,輸入搜索查詢,然後點擊鍵盤的Return(或這裏搜索)按鈕。這樣做應該觸發一個segue,並將prepareForSegue方法中的一些數據發送到下一個控制器。通過點擊鍵盤上的搜索來觸發搜索

這種方法目前正在被UIButton觸發,它工作正常,但我希望在鍵盤上點擊搜索時發生完全相同的事情,所以我可以刪除按鈕並簡化流程。

我試過在代理的textFieldShouldReturn方法中調用[self prepareForSegue],但它沒有奏效。

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

回答

4

你應該叫

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

prepareForSegue將在performSegueWithIdentifier後自動調用。

+1

這將工作,只要確保父類是該UITextField的代表。 –

+0

只需隱藏鍵盤,就可以在文本字段上激發推動式分段設置。見http://stackoverflow.com/questions/13837689/if-keyboard-is-not-dismissed-segueing-when-using-a-search-bar-changes-destinati –