UITableview - tableView:didDeselectRowAtIndexPath:方法无法正常工作?

时间:2011-12-29 10:02:51

标签: iphone uitableview

在我的应用程序中,我正在使用UITableview。在那个委托方法中,如果我做了任何操作,那么就不会发生。

例如,我在tableview中有3行

如果我选择1行(indexPath.row == 0)则不会发生任何事情

如果再次选择2行(indexPath.row == 1),现在它是登录控制台indexPath.row == 0这是以前的值。

如果再次选择1行,则记录其前一个值indexPath.row = 1.

为什么会这样。

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

       CustomerInfoViewController *customer = [[EquipmentViewController alloc]initWithNibName:@"CustomerInfoViewController" bundle:nil];

    EquipmentViewController *equpment = [[EquipmentViewController alloc]initWithNibName:@"EquipmentViewController" bundle:nil];

    ContactsViewController *contacts = [[ContactsViewController alloc]initWithNibName:@"ContactsViewController" bundle:nil];

    if(indexPath.row == 0)
    {

        NSLog(@"one %d",indexPath.row);
        [detailsView addSubview:customer.view];
    }

    if(indexPath.row == 1)
    {

         NSLog(@"two %d",indexPath.row);
        [detailsView addSubview:equpment.view];
    }

    if(indexPath.row == 2)
    {

         NSLog(@"three%d",indexPath.row);
        [detailsView addSubview:contacts.view];
    }
}

请有人帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:19)

您已实施didDeselectRowAtIndexPath方法,而不是didSelectRowAtIndexPath预期

答案 1 :(得分:1)

弗拉基米尔说错误的方法实施。使用didSelectRowAtIndexPath