Iphone iOS-如何在处理自定义单元格中的按钮事件时访问该单元格?
我有一个自定义单元格,在这个自定义单元格中我有一个按钮和一个标签:Iphone iOS-如何在处理自定义单元格中的按钮事件时访问该单元格?,iphone,ios,xcode,cocoa,Iphone,Ios,Xcode,Cocoa,我有一个自定义单元格,在这个自定义单元格中我有一个按钮和一个标签: #import <UIKit/UIKit.h> @interface ListCell : UITableViewCell{ } @property (nonatomic, retain) IBOutlet UIButton* buttonContent; @property (nonatomic, retain) IBOutlet UILabel* detailContent; @end 当我尝试从自定义单
#import <UIKit/UIKit.h>
@interface ListCell : UITableViewCell{
}
@property (nonatomic, retain) IBOutlet UIButton* buttonContent;
@property (nonatomic, retain) IBOutlet UILabel* detailContent;
@end
当我尝试从自定义单元格(ListCell)访问任何项目时,它会引发异常:
我想我得到定制手机的方式是错误的。有人知道如何正确获得它吗?提前感谢好的,我明白了,很抱歉没有正确回答您的问题。您可以做的是在将标签视图添加到单元格之前,为其分配一个teg,然后在检索时使用
UILabel *name = (UILabel *)[cell viewWithTag:kLabelTag];
并设置标签的文本好的,我知道了,很抱歉没有正确回答您的问题。您可以做的是在将标签视图添加到单元格之前为其分配一个teg,然后在重试时使用
UILabel *name = (UILabel *)[cell viewWithTag:kLabelTag];
并设置标签的文本是否确定调用了正确的类? 您确定按钮的超级视图类是ListCell类吗 请尝试检查以下内容:
// (...)
ListCell *cell = (ListCell *)button.superview;
if ([cell.class isSubclassOfClass:[ListCell class]]) {
///// just a check for indexPath: /////
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSLog(@"current indexPath: %@", indexPath );
///////////// END CHECK ///////////////
cell.detailContent.text = @"FALSE";
}else{
NSLog(@"NOT THE RIGHT CLASS!!!");
}
你确定你找对了班级吗? 您确定按钮的超级视图类是ListCell类吗 请尝试检查以下内容:
// (...)
ListCell *cell = (ListCell *)button.superview;
if ([cell.class isSubclassOfClass:[ListCell class]]) {
///// just a check for indexPath: /////
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSLog(@"current indexPath: %@", indexPath );
///////////// END CHECK ///////////////
cell.detailContent.text = @"FALSE";
}else{
NSLog(@"NOT THE RIGHT CLASS!!!");
}
请将cellForRowAtIndexPath:也发布。问题1:您的自定义单元格实现中是否有
@synthesis
?问题2:为什么您首先要获取单元格-您的按钮应该调用单元格上的一个方法来告诉它更改文本。您的按钮代码不应该直接访问单元格内容。@Mat:我已经添加了cellforrowatinexpath。尼克·布尔:1,是的,我有。2,我确实需要在单击按钮时访问单元格,我发布的代码已简化。请发布cellForRowAtIndexPath:太。问题1:您的自定义单元格实现中是否有@synthesis
?问题2:为什么您首先要获取单元格-您的按钮应该调用单元格上的一个方法来告诉它更改文本。您的按钮代码不应该直接访问单元格内容。@Mat:我已经添加了cellforrowatinexpath。尼克·布尔:1,是的,我有。2,我确实需要在单击按钮时访问单元格,我发布的代码是simplifieddetailContent是一个自定义属性LabelDetailContent可能是ListCell的属性。detailContent是一个自定义属性LabelDetailContent可能是ListCell的属性。行NSIndexPath*indecPath=[self.tableView indexPathForCell:cell];代码>有没有?它可能会对未使用的变量发出警告indexpath@meronix:是的,你说得对,它既不是ListCell也不是UtableViewCell。ListCell*单元格=(ListCell*)button.superview.superview;是获取手机的正确方法。谢谢你的帮助answer@ClaricPWI:是的,你说得对,它只是为了检查……我从我的项目中粘贴了它,现在我重新添加了一个日志,以便使用editwhat行nsindepath*indecPath=[self.tableView indexPathForCell:cell]代码>有没有?它可能会对未使用的变量发出警告indexpath@meronix:是的,你说得对,它既不是ListCell也不是UtableViewCell。ListCell*单元格=(ListCell*)button.superview.superview;是获取手机的正确方法。谢谢你的帮助answer@Claric是的,你是对的,它只是为了检查…我从我的项目中粘贴了它,现在我重新添加了一个日志,通过编辑使其有意义