我有一个UITableView
,它是由我自己的自定义UITableViewCell
组成的,它们被子类化为CustomCell
。我向该单元格添加一个UITextField
,并且在某些事件上运行方法(来自文本字段)。
运行此方法时,我需要访问文本字段是其子视图的CustomCell
。
所以我想,如何访问文本字段(CustomCell
)的父视图?
我已经尝试过,获取文本字段,方法的发送者,然后从中获取其超级视图。
CustomTextField *textField = sender;
CustomCell *cell = (CustomCell *)[textField superview];
但是这失败了,当我尝试访问单元的属性时,应用程序崩溃了,并且我在控制台中得到了这个信息:[UIView myLabel]: unrecognized selector sent to instance
。 (myLabel
是我要在单元格上尝试访问的属性。)
为什么不起作用,或者是否有另一种访问该单元格的方法?
CustomTextField
弱引用其包含CustomCell
的属性。然后,您可以向文本字段询问其单元格。如果您使用的是xib,请将属性设置为IBOutlet
并将其连接到xib中。如果要使用代码创建单元格,请在创建单元格和文本字段时在代码中设置属性。遍历视图层次结构以寻找CustomCell
祖先。
CustomCell *cell = textField.superview;
while (cell && ![cell isKindOfClass:[CustomCell class]]) {
cell = [cell superview];
}