UITableViewController
UIViewController
フルスクリーンを表示するために特別に設計された特別なものですUITableView
。これは、テーブルビューを管理するためにUITableViewController
サブクラスまたはサブクラスを使用するのと(まったく)同等です。UIViewController <UITableViewDataSource, UITableViewDelegate>
したがってUITableViewController
、より特殊な動作(存在しない場合はUITableViewを自動的に作成する、キーボードを表示するために自動的にスクロールする、管理する一意のdelegate
およびとして設定するなど)がある場合でも、標準を使用しておよびを管理できます。それを埋めるのです。dataSource
UITableView
UIViewController
UITableView
dataSource
これは、全画面表示ではないテーブルビューを管理する方法でもあります(メインビューなどのサブビューではなく、UITableViewController
そのview
プロパティが直接管理することを期待しているため、を使用するのとは対照的に、画面全体を表示することを期待しますそののカスタムサイズのサブクラスとしてを持っているan )UITableView
UITableView
UIViewController
UITableView
view
したがって、あなたの場合、それぞれに1つずつ、合計UIViewController
2つを持つことができ、その一意性は両方の(および)になることができます。問題ない。次に、データソースメソッドで、毎回正しいテーブルにフィードするために最初のデータと2番目のデータのどちらを返すかを区別するように注意してください。IBOutlets
tableView
UIViewController
dataSource
delegate
UITableViews
UITableView
@interface MyViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (nonatomic, retain) IBOutlet UITableView* masterTableView;
@property (nonatomic, retain) IBOutlet UITableView* detailsTableView;
@end
@implementation MyViewController
@synthesize masterTableView = _masterTableView;
@synthesize detailsTableView = _detailsTableView;
// Proper memory mgmt not shown here:
// - don't forget to set self.masterTableView and self.detailsTableView to nil in viewDidUnload
// - and to release _masterTableView and _detailsTableView in your dealloc method
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
UITableViewCell* cell;
if (tableView == self.masterTableView)
{
static NSString* kMasterCellIdentifier = @"MasterCell";
cell = [tableView dequeueReusableCellWithIdentifier:kMasterCellIdentifier];
if (!cell)
{
cell = [[[UITableViewCell alloc] initWithReuseIdentiier:kMasterCellidentifier] autorelease];
// do some configuration common to all your master cells
}
// configure the rest of your cell for each property that is different from one cell to another
}
else if (tableView == self.detailsTableView)
{
// Do exactly the same principle, but for the cells of your "details" TableView
}
return cell;
}