我正在开发一个信使应用程序。我有一个带有自定义单元格的表视图,其中包含一个图像视图和几个标签。
我想在点击不同的UI元素时加载不同的控制器。具体来说,我希望在点击imageView时加载controllerA,在选择行的其余部分时加载controller B。
我在imageview上放了一个按钮,并委托了一个customcellclass,当借助该按钮点击imageview时,通知我的tableview控制器-现在我应该如何获得点击行imageview的索引路径??
//MyCustomClassMethod
-(IBAction)loadProfileButtonTapped:(id)sender{
[self.loadProfileDelegate takeMeToProfile];
}
//我正在我的表视图控制器中实现这个方法
-(void)takeMeToProfile{
//need indexpath here
}
假设您的表视图名为tableView,并且您在获取发件人的方法中获得了点击图像的引用:
CGPoint imagePosition = [sender convertPoint:CGPointZero toView:self.tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:imagePosition];
这一切都归功于此,所以回答吧!
您不需要有indexpath
来实现您想要实现的目标。添加这些自定义视图时,只需为它们提供一个标记,以便在触发按钮单击事件时识别它们。
在自定义单元格的委托方法中传递对self
的引用是很常见的,这样您就可以从父VC跟踪indexPath
-(void)takeMeToProfile
这个:
-(void)customCell:(CustomCell*)cell didTapTakeMeToProfile;
当您在CustomCell
文件中实现此功能时,只需调用[self.loadProfileDelegate customCell:self didTapTakeMeToProfile]
即可。既然已经有了对单元格的引用,就可以从父VC调用tableView:indexPathForCell:
,并根据需要使用生成的NSIndexPath
。