私の UITableView は、選択したセルの詳細ページを表示するために 2 回クリックする必要があります。1 回は選択用、もう 1 回は詳細ビューを表示するためです。クリックしたセルの詳細ビューを 1 回のクリックで直接表示したいと思います。
UITableViewManager.m 内のこのメソッドでモーダル セグエを使用します。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [playerList indexPathForSelectedRow];
TCPlayerStat *object = _objects[indexPath.row];
[[segue destinationViewController] setPlayerStat:object];
}
}
Navigation Controller を持っていないため (実際にはしたくありません)、プッシュ セグエを使用できません。
TableView Attribute Inspector を調べましたが、これに関連するものは何も見つかりませんでした。「単一選択」を選択し、「タッチ時に選択を表示」にチェックを入れました。これが可能かどうかはわかりません。可能であれば、どこを見ればよいでしょうか..
ご協力いただきありがとうございます。
編集 1: このように 2 つのメソッドを記述しても、まだ機能せず (2 回クリックする必要があります)、新しい警告ログが作成されます。
「警告: プレゼンテーションの進行中に TCRootViewController: 0xa24f050 で TCDetailViewController: 0xa27b900 を提示しようとしています!」
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"showDetail" sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"showDetail"]) {
NSIndexPath *indexPath = [playerList indexPathForSelectedRow];
TCPlayerStat *object = _objects[indexPath.row];
TCDetailViewController *detailViewController = [segue destinationViewController];
[detailViewController setPlayerStat:object];
}
}
EDIT 2:理由はわかりませんが、完全に機能し、テーブルビューを2回クリックする必要がない場合があります。わかりません:/
以下の解決策