5

テーブルセルのセグエが描かれたストーリーボードがあります。行が選択されたときにいくつかのデータでいくつかのプロパティを設定したいので、次のようにします。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [[ProperyManager sharedPropertyManager]setSelectedRow:[verseIds objectAtIndex:indexPath.row]];
    [[ProperyManager sharedPropertyManager]setID:[poemIDs objectAtIndex:indexPath.row]];
    [[ProperyManager sharedPropertyManager]setRowToReturn:[NSString stringWithFormat:@"%i",indexPath.row]];


}

問題は、デリゲートメソッドが実行される前にセグエがビューをプッシュするため、宛先ビューコントローラーのビューコントローラーライフサイクルメソッド(viewWillAppearなど)が上記のdidSelectRowメソッドの前に呼び出されることです。

どうすればこれを回避できますか?

4

2 に答える 2

15

Rawkodeの答えは1つの良い解決策です-別の方法は、でprepareForSegue:、テーブルビューの選択された行にアクセスし(sender引数はテーブルビューセルに[self.tableView indexPathForCell:(UITableViewCell*)sender]なり、インデックスパスを取得するために実行できます)、必要なものを設定することです。その時点で。

于 2012-11-20T14:40:08.770 に答える
14

セルから新しいVCにセグエを作成するのではなく、古いVCから新しいVCにセグエを設定し、セグエに識別子を付けます。

その後、内

didSelectRowAtIndexPathあなたは呼び出すことができます

[self performSegueWithIdentifier:@"Segue" sender:self]

于 2012-11-20T14:34:32.603 に答える