使用带有group tableView的开关/案例通过数组填充

时间:2012-04-28 03:20:47

标签: ios switch-statement uitableview

我正在通过一个包含部分的数组填充tableView。

- (void)viewDidLoad
{
[super viewDidLoad];

listOfItems = [[NSMutableArray alloc] init];

group01List = [[NSArray alloc]initWithObjects:@"Row 1",@"Row 2", nil];
NSDictionary *group01Dict = [NSDictionary dictionaryWithObject:group01List forKey:@"Group"];
group02List = [[NSArray alloc]initWithObjects:@"Row 3",@"Row 4", nil];
NSDictionary *group02Dict = [NSDictionary dictionaryWithObject:group02List forKey:@"Group"];

[listOfItems addObject:group01Dict];
[listOfItems addObject:group02Dict];


// Do any additional setup after loading the view from its nib.
}

工作正常,我按照我想要的方式在视图中正确。

现在我有一个链接到它们的URL,它们显示在显示器中,如果我有一个部分,我可以使用Switch / case方式将单元格链接到不同的URL,如下所示:

        switch (indexPath.section){

case 0:switch (indexPath.row) {       
    case 0:
        fileURL = [NSURL URLWithString:kStringURLDismissKeyboard_h_Comments];
        break;
    case 1:
        fileURL = [NSURL URLWithString:kStringURLDismissKeyboard_m_Comments];
        break;
}
case 1:switch (indexPath.row) {  
    case 0:
        fileURL = [NSURL URLWithString:kStringURLDismissKeyboard_h];
        break;
    case 1:
        fileURL = [NSURL URLWithString:kStringURLDismissKeyboard_m];
        break;
}

字符串在顶部已经#defined - 所以一切都很好。

但是当我想在TableView中使用组时,我很想知道如何更改它。

我有这个代码可以将我的didSelectRowAtIndexPath链接到正确的部分,但由于我在交换机中使用NSURL(fileURL),我需要以某种方式将它们组合

     NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
     NSArray *array = [dictionary objectForKey:@"Group"];
     NSString *selectedGroup = [array objectAtIndex:indexPath.row];

任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

我可能不完全理解这个问题,但是如果你使用部分和行,你的开关应该看起来像这样:

switch (indexPath.section(
{
case 0:
    switch (indexPath.row) 
    {
    case 0: 
         fileURL = [NSURL URLWithString:kStringURLDismissKeyboard_h];
         break;
    case 1:
         fileURL = [NSURL URLWithString:kStringURLDismissKeyboard_m];
         break;
    }
    break;
case 1:
    ...
}