1

が付いたViewControllerがありtableView、次の名前もありNSArrayますdag

[{"ID":67,"ParentsID":0,"Title":"Products"},
{"ID":68,"ParentsID":67,"Title":"Class A"},
{"ID":69,"ParentsID":67,"Title":"Class B"},
{"ID":70,"ParentsID":68,"Title":"Recurrent"},
{"ID":71,"ParentsID":68,"Title":"Non Recurrent"},
{"ID":72,"ParentsID":70,"Title":"Basic"},
{"ID":73,"ParentsID":70,"Title":"Advanced"},
{"ID":74,"ParentsID":71,"Title":"Incentives"}]

すでにを使用してtableView、キーが。"ParentsID"に等しいアイテムのタイトルを表示することができ"0"ます。言い換えれば、私はテーブルをロードしています:

"Products" //from `{"ID":67,"ParentsID":0,"Title":"Products"}`.

ここで、tableViewで「Products」の行を選択すると、tableViewをリロードして、その「Products」アイテム(67)"ParentsID"と等しいアイテムを表示したいと思います。 すなわち:「製品」を選択するとロードされます:"ID"

"Class A"  //from {"ID":68,"ParentsID":67,"Title":"Class A"}, and
"Class B"  //from {"ID":69,"ParentsID":67,"Title":"Class B"}
           //because their ParentsID is equal to the ID of "Products"

次に、「クラスA」または「クラスB」などを選択するときに、この動作を継続したいと思います。

これどうやってするの?

値のIDを参照として使用する場合は、新しいテーブルビューをインスタンス化する必要があると思いますが、didSelectRowAtIndexPathその方法や、これが可能かどうかはわかりません。

前もって感謝します!

4

2 に答える 2

2

テーブルとナビゲーションコントローラを使用してレベルごとの階層ビューを作成するための一般的なアプローチは次のとおりです。

  1. UITableViewDataSourceを格納するクラスを作成しますNSArrayint parentId
  2. UINavigationController階層を表示する画面にを追加します
  3. UITableViewテーブルに埋め込むコントローラーを作成します
  4. ステップ1で定義されたデータソースを取得する上記のコントローラーに初期化子を追加します
  5. テーブルアイテム選択イベントへのハンドラーを提供します。

手順5のイベントハンドラーで、現在の行のIDを取得し、手順1からそのIDの新しいデータソースをインスタンス化し、手順4から初期化子を呼び出して手順3から新しいビューコントローラーをインスタンス化し、新しく作成されたものをプッシュしますステップ2からのナビゲーションコントローラーのスタックへのコントローラー。

于 2013-03-06T20:49:42.463 に答える
1

NavigationControllerシナリオ用に2つのviewControllerを内部に含めることがfirstViewControllerでき、UITableViewにすべての製品を含めることができます。任意の製品を選択すると、新しいビューをプッシュできますsecondViewController。2番目のビューにもUITableView、方法に応じて、または何かを含めることができます。行から選択したデータを表示したい。このようになりますfirstViewController

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

  SecondViewController  *secondViewController=[[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

  // save the selected Row data and in some string of secondViewController
  secondViewController.dataString=[self.idList objectAtIndex:row]; 

 [[self navigationController] pushViewController:secondViewController animated:YES];

}
于 2013-03-06T20:44:43.613 に答える