在DidselectRowAtIndexPath中应用条件

时间:2013-04-23 05:22:11

标签: ios uitableview

我有一个UITableView,其中包含不同类型的文件和文件夹,右边我设置了一个方法,一旦点击一行就传递给另一个视图控制器。我需要的是,一旦点击一行就会检查行中的文件类型,然后根据它连接到不同的uiviewcontrollers。

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

DetailTextLabel保存主题类型 即文件夹(For Folders)&文件(适用于jpeg。,png。等文件)

我想在didselectrowatindexpath中使用if条件来区分文件和文件夹

2 个答案:

答案 0 :(得分: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];
    }
}

答案 1 :(得分:0)

<。>文件中的

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

    @interface mainViewController : UIViewController {
            FolderViewController *folderViewObj;
            FileViewController *fileViewObj;
    }
<。>文件中的

    - (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行。