私はアプリ開発に関してはまったく新しいので、これはばかげた質問かもしれません。
だから私はUIテーブルを作りました。ユーザーが行を挿入または削除できるように、カスタマイズ可能です。ユーザーが表のセルをクリックできるようにしたいのですが、別のView Controllerに誘導されます。すべてのView Controllerは、各セルで同じように見えます(テンプレートのようなものです)。ストーリーボードを使用してこれを実装する方法はありますか?
感謝します!
私はアプリ開発に関してはまったく新しいので、これはばかげた質問かもしれません。
だから私はUIテーブルを作りました。ユーザーが行を挿入または削除できるように、カスタマイズ可能です。ユーザーが表のセルをクリックできるようにしたいのですが、別のView Controllerに誘導されます。すべてのView Controllerは、各セルで同じように見えます(テンプレートのようなものです)。ストーリーボードを使用してこれを実装する方法はありますか?
感謝します!
ビュー コントローラーの配列は必要ありません。必要なのは、ユーザーがセルをクリックしてセルに移動したときにインスタンス化され、ユーザーが画面を閉じてメインのビュー コントローラーに戻るとすぐに割り当てが解除される 1 つのビュー コントローラーだけです。
これをストーリーボードに実装するために必要なのは、メイン ビュー コントローラーのセルまたはボタンからのプッシュ セグエを「詳細」ビュー コントローラーに追加することだけです。セグエがトリガーされると、コードはprepareForSegue:sender:
、コントローラーのビューが画面に表示される前に、メソッドで新しく作成された「詳細」ビューコントローラーを構成する機会を得ます。これは、詳細ビューに表示されるデータをカスタマイズする場所です (おそらく、セグエをトリガーしたテーブル内の特定の行によって異なります)。
これは、Xcode とストーリーボードを使用してマスター/詳細アプリケーションを構築する方法を説明する優れたチュートリアルへのリンクです。
ストーリーボードでは、セルが選択された後にデータを表示するビューコントローラーを作成します。必要なのは配列ではなく、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