Iphone True或False:无法设置使用Registernb:forCellReuseIdentifier加载的单元格的文件所有者:

Iphone True或False:无法设置使用Registernb:forCellReuseIdentifier加载的单元格的文件所有者:,iphone,ios,uitableview,Iphone,Ios,Uitableview,在我的视图控制器中,我正在使用 [self.tableView registerNib:[UINib nibWithNibName:@"MyTableViewCell" bundle:nil] forCellReuseIdentifier:@"MyCellReuseIdentifier"]; 在单元格的nib中,我使用了与上面相同的标识符 我遇到的问题是,尽管我能够将valueChanged事件(对于自定义单元格中的控件)连接到视图控制器,但在与控件交互时,会收到一个NSInvalidArg

在我的视图控制器中,我正在使用

 [self.tableView registerNib:[UINib nibWithNibName:@"MyTableViewCell" bundle:nil] forCellReuseIdentifier:@"MyCellReuseIdentifier"];
在单元格的nib中,我使用了与上面相同的标识符

我遇到的问题是,尽管我能够将valueChanged事件(对于自定义单元格中的控件)连接到视图控制器,但在与控件交互时,会收到一个
NSInvalidArgumentException,即发送到实例的无法识别的选择器

您是否知道一种通过编程检查文件所有者是否在
表视图:cellForRowAtIndexPath:
调用中的
dequeueReusableCellWithIdentifier
调用后设置的方法


干杯,尼克,我想你做不到。您正试图使用xib文件来定义一个单元,以便在情节提要表中使用,并将内容链接到视图控制器,并且您在xib中拥有该单元,因为您在多个表中使用它,是吗


解决这个问题的唯一方法是在cell子类上创建一个属性来表示视图控制器,并在cell退出队列时将其设置为视图控制器。这有点笨拙,最后我把很多代码移到了单元格本身,只是把整个模型对象传递给了单元格。它工作得很好,感觉像一个更干净的设计

我认为你做不到。您正试图使用xib文件来定义一个单元,以便在情节提要表中使用,并将内容链接到视图控制器,并且您在xib中拥有该单元,因为您在多个表中使用它,是吗


解决这个问题的唯一方法是在cell子类上创建一个属性来表示视图控制器,并在cell退出队列时将其设置为视图控制器。这有点笨拙,最后我把很多代码移到了单元格本身,只是把整个模型对象传递给了单元格。它工作得很好,感觉像一个更干净的设计

我正在使用表视图控制器(无故事板),但我正在
viewDidLoad:
中注册单元格。我最终解决了这个问题,只需在
表视图:cellforrowatinexpath:
中的单元格控件上添加一个目标,而此时还没有关联的目标(因此只执行一次)。然后我使用标记来标识indexPath。我使用的是表视图控制器(没有故事板),但我正在
viewDidLoad:
中注册单元格。我最终解决了这个问题,只需在
表视图:cellforrowatinexpath:
中的单元格控件上添加一个目标,而此时还没有关联的目标(因此只执行一次)。然后,我使用标记来标识indexPath。