0

我有一个 UITableView,其中包含不同类型的文件和文件夹,对,我设置了一个方法,一旦单击一行,就会传递给另一个视图控制器。我需要的是,一旦单击一行,它就会检查该行中的文件类型,然后在此基础上连接到不同的 uiviewcontroller。

我的 UiTableView 每个单元格中有两个项目一个单元格标签和单元格详细信息文本标签

DetailTextLabel 包含主题类型,即文件夹(用于文件夹)和文件(用于 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];
    }

使用这种方式,当用户可以选择 uitableview 的行时,FolderViewController 和 FileViewController 的对象只创建一次,而不是所有时间。

于 2013-04-23T05:41:19.053 回答