7

I have a UITableView listing multiple types of objects, and I'd like to segue to a different view depending on which type of object the user selects.

Is it possible to do this by using multiple segues, and, if so, how?

4

2 に答える 2

17

もちろん !tableViewController (行ではなく、tableViewController 自体) から次のビューにCtrl キーを押しながらドラッグして、ストーリーボード上のすべてのセグエを定義します。ID を指定して、どちらに電話すればよいかがわかるようにします。すべてのセグエが視覚的に定義されたら、コードに進みます。tableView のデリゲートで、didSelectRowAtIndexPathをチェックして、必要なセグエを呼び出すだけですindexPath.row

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    switch (indexPath.row) {
        case 0: [self performSegueWithIdentifier:@"Segue0" sender:self];
                break;
        case 1: [self performSegueWithIdentifier:@"Segue1" sender:self];
                break;
        [...]
        default: break;
    }
}

そうすれば、ユーザーが最初の行を選択すると、ID「Segue0」のセグエが起動されます。

行を追加することもできます :[tableView deselectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:1] animated:YES];の先頭にdidSelectRowAtIndexPath、ユーザーがタッチした後に行が選択されたままにならないようにします!

編集:これは、静的セルと動的セルの両方で機能します! cell ではなく、tableViewController からセグエを Ctrl キーを押しながらドラッグするように注意してください。

于 2012-09-06T15:39:32.113 に答える
0

別の実装は次のようになります。

  • 保存しようとしているオブジェクトのタイプごとに、テーブル ビューで特別な再利用可能なプロトタイプ セルを作成します (オブジェクト ライブラリから新しいセル オブジェクトをドラッグするか、既存のデフォルトのセル オブジェクトをクリックしてコピー/貼り付けします)。再利用可能なセルごとに一意の識別子を入力することを忘れないでください。後でそれらを区別できるようにする必要があります (おそらく

    [tableView dequeueReusableCellWithIdentifier: @"CellIdentifier0"];

中身

(UITableViewCell *)tableView(UITableView *)tableViewcellForRowAtIndexPath:(NSIndexPath *)indexPath;
  • 各プロトタイプ セルを Ctrl キーを押しながらクリックし、ドラッグしてそれぞれのセグエを作成します。

  • セグエは自動的に起動されます。起動されたときに処理する必要があります

これは、再利用可能なセルごとに 1 つのトランジションがある場合に機能し、多くのケースをカバーする可能性があります。

于 2012-09-06T17:24:43.627 に答える