2013-08-30 66 views
0

我在這裏的問題是,我有一個文件夾的列表,文件夾目錄將顯示在桌面上,當用戶點擊文件夾(tableview單元格)我需要跳轉到文件夾的下一級和tableview將顯示其子文件(注意:不是樹結構,只是顯示其所有子文件,當用戶點擊單元格中的文件夾時,我從服務器獲取文件夾的下一級目錄)。在子文件列表中,如果用戶點擊在一個子文件夾中,我需要顯示其子文件列表等等。多級UITableView顯示

我的想法是創建一個UITableViewController的子類,它將在用戶選擇一行時重新創建自身的實例。將第一個實例放置在導航控制器中,並使用 [navigationController pushViewController:animated]逐個推送多級別。 但我不知道如何重寫方法

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

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

來實現我的想法。謝謝大家,我需要你的幫助!

+0

你在尋找類似treeview的東西嗎?喜歡的東西,>>根 >節點1 > Node1a > Node1a1 > Node1b > Node1b1 > Node1b2 > Node1b3 >節點2 > Node2a > Node2a1 –

回答

0

我認爲這是你想要的基本想法。無論如何,希望它能讓你開始。絕對可以在UITableViews上閱讀,並在線或在參考書中查看一些示例代碼。

@interface FileTableViewController <UITableViewController> 
@property (nonatomic, retain) NSArray *filenames; // includes dirnames 
@property (nonatomic, retain) NSArray *dirNames; 
@end 

@implementation FileTableViewController 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [filenames count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITableViewCell *cell = [[UITableViewCell alloc] dequeueReuseableCellWithIdentifier:@"cell"]; 
    cell.textLabel.text = self.filenames[indexPath.row]; 
    return cell; 
} 

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *filename = self.filenames[indexPath.row]; 
    if (self.dirnames containsObject:filename) 
    { 
     FileTableViewController *subVC = [[FileTableViewController alloc] init]; 
     subVC.filenames = [self filenamesForSubDir:filename]; 
     subVC.dirnnames = [self dirnamesForSubDir:filename]; 
     [self.navigationController pushViewController:subVC animated:YES]; 
    } 
} 
+1

太感謝你了,奔!我會嘗試。你是該死的,我需要在線閱讀更多示例代碼。再次感謝。 –

0

1>只需從didSelectRowAtIndexPath中獲取下一個目錄的路徑即可。

2>如果獲得響應,則替換cellForRowAtIndexPath中用於顯示文件夾/文件名稱的舊數據組,並將其作爲響應中的數據。

3>重新加載你的表視圖,並調用表視圖的委託(根據你的響應改變委託方法)。