まず最初に:画面全体を占めるプッシュされたviewControllerにファイルを表示してみませんか?私にはもっと直感的に思えます。
2つのtableViewでそれを実行し、それらが次よりも動的セルを使用すると仮定した場合:
1、 ViewControllerの.hファイル内
次のように2つのtableViewプロパティを指定します。
@property (weak, nonatomic) IBOutlet UITableView *foldersTableView;
@property (weak, nonatomic) IBOutlet UITableView *filesTableView;
UITableVIewの2つのデリゲートプロトコルを実装する
@interface ViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
2、2つのUITableViewをViewControllerに追加し、...
- ...アウトレットを2つのテーブルビューにリンクします
- ...属性インスペクターで、foldersTableViewのタグを1に設定し、filesTableViewを2に設定します
- ...各UITableViewを選択し、接続インスペクターに移動して、2つのデリゲートメソッド(デリゲートとデータソース)をViewController(両方)にリンクします。
3、 ViewControllerの.mファイルで、次のようにUITableViewの3つのデータソースメソッドを実装します。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
if (tableView.tag == 1) {
return theNumberOfSectionsYouWantForTheFolderTableView;
} else {
return theNumberOfSectionsYouWantForTheFilesTableView;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
if (tableView.tag == 1) {
return [foldersArray count];
} else {
return [filesArray count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView.tag == 1) {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
return cell;
} else {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
return cell;
}
}
4、選択を実装します。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView.tag == 1) {
//fill filesArray with the objects you want to display in the filesTableView...
[filesTableView reloaddata];
} else {
//do something with the selected file
}
}
私がすべてを正しく手に入れたことを願っています。@synthesize
XCode 4.4より前のバージョンを使用している場合は、.mファイルのプロパティを忘れないでください。