アプリで検索オプションを実装しましたが、何かを検索すると、検索コントローラのテーブルビューから詳細コントローラをプッシュできません。
これを行う方法はありますか?検索ディスプレイコントローラのテーブルビューから詳細コントローラをプッシュ
ありがとうございました!
アプリで検索オプションを実装しましたが、何かを検索すると、検索コントローラのテーブルビューから詳細コントローラをプッシュできません。
これを行う方法はありますか?検索ディスプレイコントローラのテーブルビューから詳細コントローラをプッシュ
ありがとうございました!
UISearchBarDelegate
の方法は、UIViewController
のSearchViewControllerとします。 (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ソースと宛先は、ビューコントローラ自体です。そうすれば、タップ・イベントでの自動起動とは対照的に、プログラム的に呼び出すことができます。
あなたの答えをありがとう...私はストーリーボードを使用していない場合でもこのコードは動作しますか?そして私は詳細コントローラからデータを取り戻す必要がないので、そのプロトコルは必要ありません。 – matteodv
Plsは、コードを提供します。 – Cyprian