0

私はアプリ開発に関してはまったく新しいので、これはばかげた質問かもしれません。

だから私はUIテーブルを作りました。ユーザーが行を挿入または削除できるように、カスタマイズ可能です。ユーザーが表のセルをクリックできるようにしたいのですが、別のView Controllerに誘導されます。すべてのView Controllerは、各セルで同じように見えます(テンプレートのようなものです)。ストーリーボードを使用してこれを実装する方法はありますか?

感謝します!

4

2 に答える 2

1

ビュー コントローラーの配列は必要ありません。必要なのは、ユーザーがセルをクリックしてセルに移動したときにインスタンス化され、ユーザーが画面を閉じてメインのビュー コントローラーに戻るとすぐに割り当てが解除される 1 つのビュー コントローラーだけです。

これをストーリーボードに実装するために必要なのは、メイン ビュー コントローラーのセルまたはボタンからのプッシュ セグエを「詳細」ビュー コントローラーに追加することだけです。セグエがトリガーされると、コードはprepareForSegue:sender:、コントローラーのビューが画面に表示される前に、メソッドで新しく作成された「詳細」ビューコントローラーを構成する機会を得ます。これは、詳細ビューに表示されるデータをカスタマイズする場所です (おそらく、セグエをトリガーしたテーブル内の特定の行によって異なります)。

これは、Xcode とストーリーボードを使用してマスター/詳細アプリケーションを構築する方法を説明する優れたチュートリアルへのリンクです。

于 2013-05-29T20:50:59.033 に答える
0

ストーリーボードでは、セルが選択された後にデータを表示するビューコントローラーを作成します。必要なのは配列ではなく、1 つだけです。tableviewcontroller から新しい viewcontroller にリンクします。Xcode でセグエをクリックし、インスペクターで一意の識別子を指定します。

tableView:didSelectRowAtIndexPath:セルを選択すると呼び出されます。ここでセグエを実行できます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  self.selectedObject = ... // store the object that was selected
   [self performSegueWithIdentifier:@"mySegue" sender:self];
}

あなたのtableviewcontrollerでは、必ず実装してくださいprepareForSegue:sender:。ここで、正しいモデル オブジェクトを渡して、目的のビュー コントローラーにデータを入力できます。

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
  if([[segue identifier] isEqualToString:@"mySegue"])
  {
    MyDetailViewCotroller  *controller = [segue destinationViewController];
    controller.dataObject = self.selectedObject;
  }
}

Apple のこのサンプル コードを確認してください (ただし、ストーリーボードは使用しません): http://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Introduction/Intro.html#//apple_ref/doc/uid/DTS40007416

于 2013-05-29T20:49:41.703 に答える