0

ここで私の問題は、フォルダーのリストがあり、ユーザーがフォルダー(テーブルビューセル)をタップすると、フォルダーディレクトリがテーブルビューに表示されることです。フォルダーの次のレベルにジャンプする必要があり、テーブルビューにサブファイルが表示されます。 (注意:ツリー構造ではなく、すべてのサブファイルを表示するだけです。ユーザーがセル内のフォルダーをタップすると、サーバーからフォルダーの次のレベルのディレクトリを取得します).サブファイルリストで、ユーザーがサブフォルダーをタップすると、表示する必要がありますそのサブファイルのリストなど。

私の考えは、ユーザーが行を選択したときにそれ自体のインスタンスを再作成する UITableViewController のサブクラスを作成することです。最初のインスタンスをナビゲーションコントローラーに配置し、[navigationController pushViewController:animated] を使用してマルチレベルを 1 つずつプッシュします。しかし、メソッドをオーバーライドする方法がわかりません

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

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

私の思いを実現するために。みんなありがとう、あなたの助けが必要です!

4

2 に答える 2

0

1> didSelectRowAtIndexPath から次のディレクトリのパスを取得するだけです。

2> 応答を受け取った場合は、フォルダー/ファイル名を表示するために cellForRowAtIndexPath で使用されているデータの古い配列を応答のデータに置き換えます。

3>テーブルビューをリロードすると、テーブルビューのデリゲートが呼び出されます(応答に応じてデリゲートメソッドを変更してください)。

于 2013-08-30T04:51:13.510 に答える
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];
    }
}
于 2013-08-30T04:46:10.743 に答える