2010-11-19 75 views
0

我有一個tableView,它列出了包含jpg,pdf,zip,mp3,mp4,sql,..文件甚至文件夾的內容目錄。在下一步中,我有一個detailView,顯示選定文件的一些屬性,如fileName,fileSize,filePath,fileType。一切都很完美。iPhone - 使用子文件夾

但實際上我在detailView中包含了一個附加選項。

即,

  1. 如果在的tableView所選擇的文件是一個圖像文件時,它打開在一個的DetailView ImageView的,以顯示圖像。
  2. 如果選定的文件是mp3,它會打開播放器在detailView中播放歌曲。
  3. 如果所選文件是一個視頻或mp4文件,它會打開一個播放器在detailView中播放該視頻。
  4. 對於其他文件,它推送一個alertView關於它是未知文件。

(我在這裏卡住了..)5.如果選擇的項目是一個文件夾,它應該再次打開一個tableView顯示該文件夾的內容。

也就是說,它應該打開一個tableView中的子文件和子文件夾,這應該是一個遞歸函數。請幫我做這個..

我想我的屏幕截圖可能會給出一些想法。

這是我的tableView我列出目錄的內容..

alt text

其中「SQLTutorial」在上面的列表

這是一個圖像文件的DetailView文件夾

alt text

這是視頻文件的詳細視圖

alt text

這是一個音頻文件

alt text

請幫我一些示例代碼,查看存儲的tableView的文件夾和子文件夾來完成的過程中的DetailView。先謝謝你。

回答

0

除了保羅的回答,您可以添加一個「文件夾」伊娃並定義它被選中行時:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    FolderViewController * detailViewController = [[FolderViewController alloc] initWithNibName:@"yourTableView" bundle:nil]; 

    UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath]; 
    // Set the title of the navigation item for the table view 
    detailViewController.folder = cell.textLabel.text; 
    detailViewController.navigationItem.title = cell.textLabel.text; 

    // Pass the selected object to the new view controller. 
    [controller.navigationController pushViewController:detailViewController animated:YES]; 
    [detailViewController release]; 
} 
1

最好的事情將是顯示該文件夾的名稱作爲初始名單(第一個圖像),並選擇時,你會創建該文件夾的內容的新的列表,並將它推到導航控制器的一部分。

您可能需要重構您的表格視圖以使其包含您的「路徑」,並添加(如果您還沒有)導航控制器。

+0

謝謝你..你能否介紹第二部分? – iOS 2010-11-19 12:27:49

+0

當我在tableView中選擇文件夾「SQLTutorial」時,它應該導航到推送其內容的tableView。我可以有這個方法的任何源代碼嗎? – iOS 2010-11-19 13:10:26

0

如果文件和文件夾加載在視圖控制器的viewDidLoad中,所以最簡單的方法是向視圖控制器添加一個屬性來指示源文件夾。因此,當用戶觸摸子文件夾單元格時,可以初始化新的視圖控制器,將屬性設置爲該子文件夾並將其推送到導航控制器。

+0

當你選擇了該文件夾時,你能幫助我使用源代碼來推送tableView嗎? – iOS 2010-11-19 13:02:24

+0

當我在tableView中選擇文件夾「SQLTutorial」時,它應該導航到推送其內容的tableView。我可以有這個方法的任何源代碼嗎? – iOS 2010-11-19 13:10:05

相關問題