2

こんにちは、ストーリーボードでテーブルビューを使用してアプリを作成しています。これまでのところ、4つのセルを作成するように設定されたテーブルにデータを入力し、各セルから同じView Controllerにプッシュできますが、できるようにしたいのはそれぞれですセルは新しいView Controllerに移動します

これが私がこれまでに持っているものです。これを行う方法について正しい方向に私を向けることができれば、これは素晴らしいことです

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

if ([[segue identifier] isEqualToString:@"ShowSimpleDetails"]) {
    SimpleTutorialsViewController *detailViewController = [segue destinationViewController];

    NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow];

    int row = [myIndexPath row];
    detailViewController.simpleDetailModal = @[_simpleTitle[row], _simpleDescription[row], _simpleImages[row]];
   }
}
4

3 に答える 3

4

ストーリーボードまたはコードで実行できます。

絵コンテで

セルから宛先ビュー コントローラーへのセグエを描画し、プロパティ インスペクターでそのセグエに一意の識別子を与えることができます。これを使用して、複数のセル プロトタイプを作成し、各プロトタイプに独自のセグエを持たせることで、複数の宛先にセグエできます。

コード内

コードでこれを行うには、View Controller (セルではなく) から各宛先へのセグエを描画し、各セグエに一意の識別子を与えます。次にdidSelectRowAtIndexPath、選択したインデックス パスに基づいて目的の宛先を決定し、次のようなセグエを実行します。

NSString *segueIdentifier = @"someIdentifier";//or whatever logic you need to determined the appropriate identifier
id sender = self;//or whatever object you want to be the sender
[self performSegueWithIdentifier:segueIdentifier sender:sender];

セグエの準備

ではprepareForSegue、考えられるセグエ識別子ごとに条件付きブロックがあります。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([[segue identifier] isEqualToString:@"oneSegueIdentifier"]) {
        //preparation
    } else if ([[segue identifier] isEqualToString:@"anotherSegueIdentifier"]) {
        //other preparation
    }
}
于 2013-08-04T14:16:05.810 に答える
1

また、作成したい TableViewController > TableView > Attributes Inspector > Prototype Cells = numberOfSeguqes をクリックする必要があります。

于 2016-02-27T09:46:25.683 に答える
0

プロトタイプ セルから別の宛先ビュー コントローラーに Ctrl キーを押しながらドラッグし、別の識別子を割り当てるだけです。

プロトタイプ セルと 4 つの異なる宛先ビュー コントローラーがあるとします。以下の手順に従ってください

  1. ctrl+ プロトタイプ セルから最初の宛先ビュー コントローラーにドラッグし、属性インスペクターで "cell2view1" と言う識別子を割り当てます。
  2. ctrl+ プロトタイプ セルから 2 番目の宛先ビュー コントローラーにドラッグし、属性インスペクターで "cell2view2" と言う識別子を割り当てます。
  3. ctrl+ プロトタイプ セルから 3 番目の宛先ビュー コントローラーにドラッグし、属性インスペクターで "cell2view3" と言う識別子を割り当てます。
  4. ctrl+ プロトタイプ セルから 4 番目の宛先ビュー コントローラーにドラッグし、属性インスペクターで "cell2view4" と言う識別子を割り当てます。

[segue destinationViewcontroller] は、ストーリーボードに従って自動的に設定されます。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
 {

    if ([[segue identifier] isEqualToString:@"cell2view1"]) 
    {
        //Do things
    }
    else if ([[segue identifier] isEqualToString:@"cell2view2"])
    {

    }
 }
于 2013-08-04T14:10:23.920 に答える