如何获取所选行的索引路径?

时间:2015-02-18 06:46:04

标签: ios uitableview delegates

我正在开发一个信使应用程序。我有一个自定义单元格的tableview,其中包含一个imageview和几个标签。

我想在点击不同的UI元素时加载不同的控制器。具体来说,我希望在轻触imageView时加载controllerA,在选择其余行时加载controllerB。

我在imageview顶部放置了一个按钮,并创建了一个customcellclass委托,以便在借助该按钮轻触imageview时通知我的tableviewcontroller - 现在我应该如何获取轻触行imageView的索引路径?

// MyCustomClassMethod

-(IBAction)loadProfileButtonTapped:(id)sender{
    [self.loadProfileDelegate takeMeToProfile];
}

//我正在我的tableview控制器中实现这个方法

-(void)takeMeToProfile{
//need indexpath here
}

3 个答案:

答案 0 :(得分:1)

假设您的表视图名为tableView,并且您在获取发件人的方法中获得了分略图像的引用:

CGPoint imagePosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:imagePosition]; 

All the credit to this so answer!

答案 1 :(得分:0)

您不需要indexpath来实现您想要达到的目标。添加这些自定义视图时,只需为其提供标记,以便在触发按钮单击事件时标识它们。

答案 2 :(得分:0)

在自定义单元格的委托方法中传递对self的引用是很常见的,这样您就可以从父VC跟踪indexPath。尝试切换这个:

-(void)takeMeToProfile

用这个:

-(void)customCell:(CustomCell*)cell didTapTakeMeToProfile;

CustomCell文件中实施此功能后,您只需拨打[self.loadProfileDelegate customCell:self didTapTakeMeToProfile]即可。现在你有了对单元格的引用,你可以从父VC调用tableView:indexPathForCell:并使用你认为合适的结果NSIndexPath