2011-11-07 5 views
0

メインテーブルビューには、ユーザから追加/作成された行があり、その行には独自のテーブルビューが開きます。私の主な質問は、メインtableviewで追加された各行thatsが独自のtableview(ユーザーから追加されるまで空白として)を開くことを確認する方法です。iphone:メインテーブルビューの各行に独自のテーブルビューがあります

私が見たこのリンクは、最も近いHow can I move to another view controller when the user clicks on a row?ですが、正確には私が探しているものではありません。ほとんどのサンプル/家庭教師は、すべてususally人口が多いか、すでにテーブルビューに配列を持っています。私は鉱山を完全に何も無しにしたいと思っていましたが、ユーザーとメインのテーブルビューだけで追加しました。各行は独自のテーブルビューを開きます。

私は既に2つのテーブルビューを持っていますが、メインと他はそれぞれ各行にサブです。私はメインテーブルビューに行を挿入することができましたが、メインテーブルビューの他の行と同じテーブルビューを開き、メインテーブルビューの各行が独自の空白のテーブルビューを開く方法を知りたいと思います。

+0

新しいプロジェクトを作成するときに見つかったデフォルトのコードを見てください。そうするコードはすでにあります。 –

+0

@AntwanvanHoudt私は基本的なテーブルビューで作業する方法を知っていて、リンゴのサンプルtableviewsuiteも調べました。私は私が行ったことの私のポストを更新しました。 – merrill

答えて

1

通常、ビューコントローラはtableViewを制御します。私はあなたがそこに複数のテーブルビューとそれぞれのロジックを収めようとしていると思います。代わりに、各テーブルのコントローラを作成するだけです。

まず、UIViewControllerテンプレートを使用してメインビューコントローラを作成します(TableViewControllerは使用しないでください)。 XIBを使用してTableView要素を追加するか、コードを使用してUITableViewインスタンスを作成します。

デリゲートとデータソースのプロトコルに準拠したクラスを作成します。これはビューコントローラである必要はありません。例:

// MiniTVC.h

@interface MiniTVC : NSObject <UITableViewDelegate, UITableViewDataSource> 
@property (nonatomic, retain) IBOutlet UITableView *tableView; 
@property (nonatomic, retain) NSArray *array; 
-(id) initWithTableView:(UITableView*)tableView array:(NSArray*)array; 
@end 

といつものように、デリゲートとデータソースのメソッドを実装します。使用

  • tableView:heightForRowAtIndexPath:
  • numberOfSectionsInTableView:
  • tableView:numberOfRowsInSection:
  • tableView:cellForRowAtIndexPath:

その後戻ってあなたのメインビューコントローラに、あなたはインターフェイスデザイナーから作成(またはフック:あなたは、少なくとも以下のものが必要IBOutlets)tableViewを開き、デリゲートとデータソースをMiniTVCクラスに設定します。例えば、

// sample table created by code 
CGRect frame = CGRectMake(50,50,100,100); 
UITableView *tableView = [[UITableView alloc] initWithFrame:frame] 
[self.view addSubView:tableView]; 

// set the datasource/delegate 
MiniTVC *miniTVC = [[MiniTVC alloc] initWithTableView:self.tableView array:someArray]; 
tableView.dataSource = self.miniTVC; 
tableView.delegate = self.miniTVC; 

このプロセスを繰り返して、カスタムUITableViewCell内部から別のUITableView + MiniTVCを作成することができます。または、UITableViewCellをテーブルの委譲先/データソースに準拠させ、そこにメソッドを実装することもできます。

Btwでは、tableviews内にtableviewsを作成するのは少し珍しいことです。両方ともUIViewScrollのサブクラスなので、予期しない動作につながる可能性があります。自分で試したことはありません。

関連する問題