如何在tableview的两个不同部分中单击行来导航到不同的视图?

时间:2011-12-12 08:07:28

标签: iphone uitableview

我在tableview中有两个不同的部分。我想在点击不同部分的行时导航到两个不同的viewcontrollers。我知道这可以在didSelectRowAtIndexPath()方法中完成,但我正在考虑如何区分不同部分中的行的点击。如果可以实现,请帮助我吗?

3 个答案:

答案 0 :(得分:2)

您可以使用 switch 语句来确定UITableView的部分。

实施例

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    switch ( indexPath.section )
    {  
        case 0:
        {
            FirstViewController * first = [[FirstViewController alloc] init];
            [self.navigationController pushViewController: first animated: YES];
        }
            break;
        case 1:
        {
            SecondViewController * second = [[SecondViewController alloc] init];
            [self.navigationController pushViewController: second animated: YES];
        }
            break;
    }
}

答案 1 :(得分:1)

在你的doSelectRowtIndexPath中执行类似的操作: -

if (indexPath.section==0 && indexPath.row==0) {
    //Do Something
}

或者你可以使用开关盒。

答案 2 :(得分:0)

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    UIViewController *viewController;
    switch (indexPath.section) {
        case 0: 
            viewController = [[[FirstExampleViewController alloc] init] autorelease];
            break;
        case 1: 
            viewController = [[[SecondExampleViewController alloc] init] autorelease]; 
            break;
        case 2:
            viewController = [[[ThirdExampleViewController alloc] init] autorelease]; 
            break;
        default: 
            viewController = [[[UIViewController alloc] init] autorelease];
    } 
    [self.navigationController pushViewController:viewController animated:YES];
}