2016-08-03 2 views
2

データベースファイルからデータをロードするUITableViewがあります。それは異なるセクションを持っています。私はカスタムUITableViewCellをプログラムで設計することができました。私がセルに触れると、私はUIViewControllerにセグエイします。セグは、Interface Builderから追加されます。新しいUIViewControllerに異なるコンテンツ(UILabelUIButton)をUITableViewのセクション番号に基づいて読み込む必要があります。より多くの視覚化のために、私は以下の画像を追加しています。UITableViewからセグリングした後、異なるデータに基づいて異なるUIViewを読み込む方法は?

これを行う方法は?それぞれのアクションにカスタムUIViewControllerサブクラスを使用する必要がありますか?またはこれを行う簡単な方法がありますか?コードで

第一ビュー view 1 第二ビュー view 2 第三ビュー view 3

+0

あなたはUIViewControllerにセグをしていますか? –

+0

はい、私は 'UIViewController' @NiñoScript – nayem

+0

にそれを反映させるためにあなたの質問を編集しました。 ;) –

答えて

2

、あなたは、prepareForSegueメソッドを使用する識別子を確認して、次のUIViewControllerに関連するデータを渡すことができます。

インターフェイスが種類セルごとに異なる場合は、各種類のインターフェイスに異なるUIViewControllerを使用する必要があります。これらのすべては、各プロトタイプのセルから別のコントローラに「Ctrlキーを押しながらドラッグする」ことによって、ストーリーボードを通じて実行できます。


異なるデータに異なるプロトタイプセルを使用しない場合は、 (これはストーリーボードでは非常に簡単になります)、ストーリーボードを分割する代わりにUITableView delegatedidSelectRowAtIndexPathメソッドでコードを使用してセグを呼び出します。このように:

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    switch indexPath.section { 
    case 0: 
     performSegueWithIdentifier("some_segue_id", sender: self) 
    case 1: 
     performSegueWithIdentifier("another_segue_id", sender: self) 
    default: 
     print("not a known section") 
    } 
} 
+0

しかし問題は、再利用可能なセルを1つだけ使用していることです。内容はデータベースから取り出すときとは異なります。そして、私は選択したセルのセクション番号に応じて 'UIView'または' UIViewController'に分割したいと思っています – nayem

+0

あなたは簡単にもっと再利用可能なセルを使うことができます。をしたい。しかし、あなたがしたくない場合は、上記の答えにコード例を追加しました。 –

+0

しかし、どのようにセグを追加するのですか?私は、 'UITableViewCell 'から' UIViewController'に1つのセグを追加しました。これは、ストーリーボードでコントロールをドラッグし、それに識別子を与えます。しかし、1つのセルから別の 'UIViewController'シーンにセグを追加することはできません。 – nayem

関連する問題