Ios 无法访问tableview属性以获取自定义单元格中单击的按钮的索引

Ios 无法访问tableview属性以获取自定义单元格中单击的按钮的索引,ios,iphone,objective-c,uitableview,uiviewcontroller,Ios,Iphone,Objective C,Uitableview,Uiviewcontroller,我已经创建了一个自定义表格单元格应用程序。每个单元格都包含按钮。我在stackoverflow上发现,确定是单击了第1行的按钮还是单击了第2行的按钮的最佳方法是使用此方法 CGPoint hitPoint = [sender convertPoint:CGPointZero toView:self.tableView]; NSIndexPath *hitIndex = [self.tableView indexPathForRowAtPoint:hitPoint]; 但是我不能使用它,因为我

我已经创建了一个自定义表格单元格应用程序。每个单元格都包含按钮。我在stackoverflow上发现,确定是单击了第1行的按钮还是单击了第2行的按钮的最佳方法是使用此方法

CGPoint hitPoint = [sender convertPoint:CGPointZero toView:self.tableView]; 
NSIndexPath *hitIndex = [self.tableView indexPathForRowAtPoint:hitPoint];
但是我不能使用它,因为我在self.tableView中没有收到错误

这是因为我没有使用UItableviewcontroller,而是使用UIViewcontroller并实现tableviewdelegate和tableviewdatasource。并且viewcontroller没有任何属性tableview

我无法将UIViewcontroller更改为UItableViewcontroller,因为在代码中的任何地方,我都在使用fileowner推送ViewController


因此,如何消除self.tableview错误

我的建议是,在创建自定义单元格对象时,将indexPath.row值保留在正确的位置

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

   //Your cell creation logic here. 

    //Set indexpath in the custom cell. 
    cell.parentIndexPath = indexPath; 

    return cell;
}
单击按钮时,可以在自定义单元格对象内检查该按钮:

-(IBAction) buttonClicked: (id) sender {
  NSLog(@"User clicked on index path %@", self.parentIndexPath);

}
必须在自定义单元格头(.h)文件中声明parentIndexPath


我的建议是,在创建自定义单元格对象时,保持其indexPath.row值正确

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

   //Your cell creation logic here. 

    //Set indexpath in the custom cell. 
    cell.parentIndexPath = indexPath; 

    return cell;
}
单击按钮时,可以在自定义单元格对象内检查该按钮:

-(IBAction) buttonClicked: (id) sender {
  NSLog(@"User clicked on index path %@", self.parentIndexPath);

}
必须在自定义单元格头(.h)文件中声明parentIndexPath


我的建议是,在创建自定义单元格对象时,保持其indexPath.row值正确

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

   //Your cell creation logic here. 

    //Set indexpath in the custom cell. 
    cell.parentIndexPath = indexPath; 

    return cell;
}
单击按钮时,可以在自定义单元格对象内检查该按钮:

-(IBAction) buttonClicked: (id) sender {
  NSLog(@"User clicked on index path %@", self.parentIndexPath);

}
必须在自定义单元格头(.h)文件中声明parentIndexPath


我的建议是,在创建自定义单元格对象时,保持其indexPath.row值正确

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

   //Your cell creation logic here. 

    //Set indexpath in the custom cell. 
    cell.parentIndexPath = indexPath; 

    return cell;
}
单击按钮时,可以在自定义单元格对象内检查该按钮:

-(IBAction) buttonClicked: (id) sender {
  NSLog(@"User clicked on index path %@", self.parentIndexPath);

}
必须在自定义单元格头(.h)文件中声明parentIndexPath

这应该起作用:

CGPoint hitPoint = [sender convertPoint:CGPointZero toView:(UITableView *)self.view];
但是您应该有一个真正指向表视图的
@属性。

这应该可以:

CGPoint hitPoint = [sender convertPoint:CGPointZero toView:(UITableView *)self.view];
但是您应该有一个真正指向表视图的
@属性。

这应该可以:

CGPoint hitPoint = [sender convertPoint:CGPointZero toView:(UITableView *)self.view];
但是您应该有一个真正指向表视图的
@属性。

这应该可以:

CGPoint hitPoint = [sender convertPoint:CGPointZero toView:(UITableView *)self.view];

但是您应该有一个真正指向表视图的
@property

尝试为您的表创建属性

@property (strong, nonatomic) IBOutlet UITableView *myTableView;
然后设置myTableView而不是self.tableview。我试过这个,这个很适合我

 CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:myTableView];
    NSIndexPath *indexPath = [buddyListTableView indexPathForRowAtPoint:buttonPosition];

    NSLog(@"Index Path  :%d",indexPath.row);

尝试为表创建属性

@property (strong, nonatomic) IBOutlet UITableView *myTableView;
然后设置myTableView而不是self.tableview。我试过这个,这个很适合我

 CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:myTableView];
    NSIndexPath *indexPath = [buddyListTableView indexPathForRowAtPoint:buttonPosition];

    NSLog(@"Index Path  :%d",indexPath.row);

尝试为表创建属性

@property (strong, nonatomic) IBOutlet UITableView *myTableView;
然后设置myTableView而不是self.tableview。我试过这个,这个很适合我

 CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:myTableView];
    NSIndexPath *indexPath = [buddyListTableView indexPathForRowAtPoint:buttonPosition];

    NSLog(@"Index Path  :%d",indexPath.row);

尝试为表创建属性

@property (strong, nonatomic) IBOutlet UITableView *myTableView;
然后设置myTableView而不是self.tableview。我试过这个,这个很适合我

 CGPoint buttonPosition = [sender convertPoint:CGPointZero toView:myTableView];
    NSIndexPath *indexPath = [buddyListTableView indexPathForRowAtPoint:buttonPosition];

    NSLog(@"Index Path  :%d",indexPath.row);




你的桌子名是什么?您的表名是默认值吗?您是否已为tableView@interfaceSerAgTableViewController:UIViewController{不,我在问tableview IBoutlet name我回答了类似的问题。请检查。也许它可以帮助您:您的表名是什么?您的表名是默认值吗?您是否为您的表创建了属性tableView@interfaceSerAgTableViewController:UIViewController{不,我在问tableview IBoutlet name我回答了类似的问题。请检查。也许它可以帮助您:您的表名是什么?您的表名是默认值吗?您是否为您的表创建了属性tableView@interfaceSerAgTableViewController:UIViewController{不,我在问tableview IBoutlet name我回答了类似的问题。请检查。也许它可以帮助您:您的表名是什么?您的表名是默认值吗?您是否为您的表创建了属性tableView@interfaceSerAgTableViewController:UIViewController{不,我在问tableview IBoutlet Name我回答了类似的问题。请检查一下。也许它可以帮助您:您需要小心使用这种方法,使索引路径保持更新—例如,在插入和删除行时。是的,在这种情况下,您需要刷新。这会给我一个错误—在t的对象上找不到parentIndexPath类型的属性类型PotableCell您需要在自定义单元格中添加该属性。使用这种方法时,您需要小心保持索引路径的更新—例如,在插入和删除行时。是的,在这种情况下,您需要刷新。这会给我一个错误—在类型PotableCell的对象上找不到类型为parentIndexPath的属性您需要添加适当的属性在自定义单元格中为ty。使用这种方法时,您需要小心保持索引路径的更新-例如,在插入和删除行时。是的,在这种情况下您需要刷新。这会给我一个错误-在PotableCell类型的对象上找不到parentIndexPath类型的属性您需要在自定义单元格中添加该属性。您需要小心ul使用这种方法,您可以保持索引路径的更新—例如,在插入和删除行时。是的,在这种情况下需要刷新。它会给我一个错误—在PotableCell类型的对象上找不到parentIndexPath类型的属性您需要在自定义单元格中添加该属性。确实做到了这一点。消除了错误。但是cli上的索引路径检查第1行按钮和第2行按钮都是0。你知道为什么吗?顺便问一下,我是通过编程方式创建按钮的。这是不是因为我等你打印NSLog(@“Index Path:%@”,self.parentIndexPath);但是你必须打印NSIndexPath*indexPath这个NSLog(@“Index Path:%@”,indexPath);不,那是在我尝试了你的方法之后,我开始在这个页面上尝试srijeeth方法。这是一个错误,但我实际上使用了你的NSLOGlet。我们正好做到了这一点。消除了错误。但是单击第1行按钮和第2行按钮的索引路径是0。知道为什么吗。顺便问一下,我正在以编程方式创建按钮。这可能是原因吗信息技术