私は何が間違っているのですか?
2つのtableViewControllerがあります。それらの1つは正常に動作します。検索を行うと、右側のアクセサリボタンで結果が表示され、prepareForSegueが正常に機能します。
ただし、他のtableViewControllerは最初のものとまったく同じです。検索は正常に機能しますが、アクセサリボタンが表示されず、prepareForSegueは起動されません。
何が欠けているのか理解できません。
私は何が間違っているのですか?
2つのtableViewControllerがあります。それらの1つは正常に動作します。検索を行うと、右側のアクセサリボタンで結果が表示され、prepareForSegueが正常に機能します。
ただし、他のtableViewControllerは最初のものとまったく同じです。検索は正常に機能しますが、アクセサリボタンが表示されず、prepareForSegueは起動されません。
何が欠けているのか理解できません。
私はこのような回避策を実行しました:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.searchDisplayController.searchResultsTableView) {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
[self performSegueWithIdentifier:@"ShowComment" sender:self];
}
}
なぜprepareForSequeがsearchDisplayテーブルビューに対して起動しないのかまだわかりません。
私もこれをじっくりと調べました。まったく同じ問題が発生しました。プログラムでナビゲーションバーに検索を追加したため、この特定のビルドにはストーリーボードを使用していません。それはすべて1つの簡単なことに帰着しました、これを追加してください:
[searchDisplayController setSearchResultsDelegate:self]
それを実行すると、searchResults tableViewから結果を選択するためにdidSelectRowAtIndexPathが最終的に起動されました!