在 ios 应用程序中。我有一个 UITableView,其中包含名为“MyCustomCell”的原型单元格。“MyCustomCell”包含一个按钮和一个名为“cellKey”的 NSString 属性:
@interface MyCustomCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIButton *myButton;
@property (strong, nonatomic) NSString *cellKey;
@end
在 cellForRowAtIndexPath Delegate 方法中,我分配了 cellKey 并向按钮添加了一个点击侦听器。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSUInteger row = [indexPath row];
MyItem *item = [self.data objectAtIndex:row];
NSString *identifier = @"MyCustomCell";
MyCustomCell *cell = (MyCustomCell *)[tableView dequeueReusableCellWithIdentifier:identifier];
//Give the cell the key
cell.cellKey = item.key;
//add a tap listener
[cell.myButton addTarget:self action:@selector(buttonTaped:) forControlEvents:UIControlEventTouchUpInside];
return cell;
}
在 buttonTaped 处理程序中,我想获取与单击的按钮对应的单元格的键:
- (IBAction)buttonTaped:(id)sender
{
//Get the button
UIButton *senderButton = (UIButton *)sender;
//get the super view which is the cell
MyCustomCell *cell = (MyCustomCell *)[senderButton superview];
//get the key
NSString *key = cell.cellKey;
}
但是,当我运行应用程序并单击按钮时,当我调用 cell.cellKey 并出现以下错误时应用程序崩溃:
-[UITableViewCellContentView cellKey]: unrecognized selector sent to instance 0x13576240
它没有认识到 superView 是 MyCustomCell 类型。那么如何获取包含单击按钮的单元格的“cellKey”属性?
谢谢