0

さまざまな種類のファイルとフォルダーを含む UITableView があります。行をクリックすると、別のビューコントローラーに渡すメソッドを設定しました。私が必要とするのは、行がクリックされると、その行にあるファイルの種類をチェックし、それに基づいて異なる uiviewcontrollers に接続することです。

私の UiTableView には、各セルに 2 つの項目があります A Cell Label & Cell Detail Text Label

DetailTextLabel は、サブジェクト タイプ、つまり Folder (フォルダーの場合) & File (jpeg. 、png. などのファイルの場合) を保持します。

didselectrowatindexpath で if 条件を使用して、ファイルとフォルダーを区別したい

4

2 に答える 2

1

次のような値を確認することでそれを行うことができcell.detailTextLabel.textます:

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

    UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
    NSString *str = cell.detailTextLabel.text;

    if ([str isEqualToString:@"Folder"])
    {
        // Open Folder Detail View. For Example:
        FolderViewController* objVC = [[FolderViewController alloc] initWithNibName:@"FolderViewController" bundle:nil];
        [self.navigationController pushViewController:objVC animated:YES];
    }
    else if ([str isEqualToString:@"File"])
    {
        // Open File Detail View. For Example:
        FileViewController* objVC = [[FileViewController alloc] initWithNibName:@"FileViewController" bundle:nil];
        [self.navigationController pushViewController:objVC animated:YES];
    }
}
于 2013-04-23T05:28:09.707 に答える
0

.h ファイル内

    #import "FolderViewController.h"
    #import "FileViewController.h"

    @interface mainViewController : UIViewController {
            FolderViewController *folderViewObj;
            FileViewController *fileViewObj;
    }

.m ファイルで

    - (void)viewDidLoad {
            [super viewDidLoad];

            folderViewObj = [[FolderViewController alloc] initWithNibName:@"FolderViewController" bundle:nil];
            fileViewObj = [[FileViewController alloc] initWithNibName:@"FileViewController" bundle:nil];
    }

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

            UITableViewCell * cell = [tblObj cellForRowAtIndexPath:indexPath];
            NSString *lblText = cell.DetailTextLabel.text;

            if ([lblText isEqualToString:@"Folder"])  {
                    [self.navigationController pushViewController:folderViewObj animated:YES];
            }
            else if ([lblText isEqualToString:@"File"])
            {
                    [self.navigationController pushViewController:fileViewObj animated:YES];
            }
    }

    -(void) dealloc {
            [folderViewObj release];
            [fileViewObj release];
            [super dealloc];
    }

この方法を使用すると、FolderViewController と FileViewController のオブジェクトは、ユーザーが uitableview の行を選択できるときに一度だけ作成されます。

于 2013-04-23T05:41:19.053 に答える