私は自分のプロジェクトの検索バーを実装しています。検索部分はOKです。生データを表示し、検索テキストでデータをフィルタリングすることができます。検索結果tableViewのセルをタップすると、詳細ビューに遷移しませんでした。しかし、生データについては、詳細ビューに移行することができます。私はストーリーボードを使用しているのでprepareForSegue
メソッドを使用します。 はここで、これまで、DetailViewControllerのprepareForSegueを含む検索バー
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString: @"Book Detail Segue"]) {
BookDetailsTVC *bookDetailsTVC = segue.destinationViewController; // for the detail view controller
bookDetailsTVC.delegate = self;
if (self.tableView == self.searchDisplayController.searchResultsTableView) { // The if block is not working
NSLog(@"Search Display Controller");
bookDetailsTVC.book = [self.searchResults objectAtIndex: self.searchDisplayController.searchResultsTableView.indexPathForSelectedRow.row];
} else {
NSLog(@"Default Display Controller");
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
bookDetailsTVC.book = [self.objects objectAtIndex: indexPath.row];
}
}
}
私はdidSelectRowAtIndexPath
メソッドを使用してみましたとき、私は詳細ビューに移行できるコードです。
Finishing up a navigation transition in an unexpected state. Navigation Bar subview tree might get corrupted.
Unbalanced calls to begin/end appearance transitions for <BookDetailsTVC: 0x69b5300>.
ここdidSelectRowAtIndexPathためのコードです:助けを
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath
{
BookDetailsTVC *bookDetailsTVC = [[BookDetailsTVC alloc] init];
if (tableView == self.searchDisplayController.searchResultsTableView) {
bookDetailsTVC.book = [self.searchResults objectAtIndex: self.searchDisplayController.searchResultsTableView.indexPathForSelectedRow.row];
[self performSegueWithIdentifier: @"Book Detail Segue" sender:self];
NSLog(@"Search Display Controller");
} else {
bookDetailsTVC.book = [self.objects objectAtIndex: indexPath.row];
[self performSegueWithIdentifier: @"Book Detail Segue" sender: self];
NSLog(@"Default Display Controller");
}
}
感謝しかし、私はそのようなエラーメッセージが表示されました。
それも私のためにそれを修正!私は1週間ほど前から、この最初のアプリでこの謎めいた問題を解決しようとしていました!共有してくれてありがとう。 –
'self.searchDisplayController.active'部分が私の夜を救った!どうもありがとうございました。私はこのチュートリアルに従っていて、動作させることができませんでした:http://www.raywenderlich.com/16873/how-to-add-search-into-a-table-viewあなたの解決策は私の問題を解決しました。 – scaryguy
ありがとう!私の場合、問題はself.searchDisplayController.searchResultsTableViewの代わりにself.tableViewを使用していました。 – Borzh