通过按钮选择一行...使用didSelectRowAtIndexPath

时间:2009-08-24 06:59:21

标签: iphone objective-c uitableview

我有一个关于我想要创建的按钮的问题,该按钮选择我之前选择的行。 这是我到目前为止所提出的,但由于我是新功能的,所以我可以肯定地使用一些指针

我创建了一个带有按钮的工具栏,在此按钮后面是以下操作。

-(void)clickRow
{
selectedRow = [self.tableView indexPathForSelectedRow];
[self.tableView:[self tableView] didSelectRowAtIndexPath:selectedRow];
}

在我的 didSelectRowAtIndexPath

正在推送一个rootViewController

rvController = [RootViewController alloc] ...etc 

所以我想要的是我的函数clickRow选择行并推送新的rootviewcontroller(由于我正在使用树,它具有正确的信息)。

我也试过这样的事情

    -(void)clickRow
    {
    NSDictionary *dictionary = [self.tableDataSource objectAtIndex:indexPath.row];

    NSArray *Children = [dictionary objectForKey:@"Children"];

    rvController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:[NSBundle mainBundle]];

    rvController.CurrentLevel += 1;

    rvController.CurrentTitle = [dictionary objectForKey:@"Title"];

    [self.navigationController pushViewController:rvController animated:YES];
    rvController.tableDataSource = Children;
    [rvController release];
}

最后一个功能有点但有点不够;) 例如,如果我按下中间行或任何其他行,它会不断选择toprow。

对于那些阅读并试图提供帮助的人来说,这些都是

1 个答案:

答案 0 :(得分:1)

我认为这里的问题是[self.tableView indexPathForSelectedRow];从这看起来看起来,似乎当用户点击它们时,单元格可能不会“停留”,因此当你调用indexPathForSelectedRow时,你会得到返回的顶行索引,查看表格单元格docs并查看是否存在是http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html中的任何内容,如果没有,我会做的是当人点击该行时捕获类变量中的索引路径然后使用它..