2011-12-30 16 views

答えて

1

UISearchBarDelegateの方法は、UIViewControllerSearchViewControllerとします。 (DetailViewController*) dvcをプッシュするには、SearchViewControllerでこれらのメソッドを実装します。

#pragma mark - Search bar delegate 
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText 
{ 
    if (searchTextMatchedSomeTarget) { 
     textForDetailView = searchText; 
     [self performSegueWithIdentifier:seguePushDetailView sender:self]; 
    } 
} 

#pragma mark - View lifecycle 
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:seguePushDetailView]) { 
     dvc = (DetailViewController *)[segue destinationViewController]; 
     dvc.delegate = (id)self; 
     dvc.searchText = textForDetailView; 
    } 
} 

#pragma mark - Detail view controller protocol delegate 
- (void)DetailViewControllerDidFinish:(DetailViewController *)controller 
{ 
    NSString *somethingBackFromDetailView = controller.backToSearchView; 
} 

​​は、あなたが好きなタイプの方法及び性質、SearchViewControllerからデータを受信し、するために、両方の「仕上げがした」とプロトコルを宣言詳細処理後にデータを返送する。 Xcode IBには、UISearchViewControllerから​​にコントロールをドラッグすることで、セグが追加されます。 NB: segueソースと宛先は、ビューコントローラ自体です。そうすれば、タップ・イベントでの自動起動とは対照的に、プログラム的に呼び出すことができます。

+0

あなたの答えをありがとう...私はストーリーボードを使用していない場合でもこのコードは動作しますか?そして私は詳細コントローラからデータを取り戻す必要がないので、そのプロトコルは必要ありません。 – matteodv

関連する問題