为自定义 UITableViewCell 加载和注册 nib 时未调用 prepareForSegue

Posted

技术标签:

【中文标题】为自定义 UITableViewCell 加载和注册 nib 时未调用 prepareForSegue【英文标题】:prepareForSegue not called when load and register nib for custom UITableViewCell 【发布时间】:2015-02-26 11:51:43 【问题描述】:

这是我用来显示自定义单元格的代码(我从 nib 文件加载):

- (void)viewDidLoad 
    [super viewDidLoad];
    UINib *nib = [UINib nibWithNibName:@"BR1LineCellRightImg" bundle:nil];
    [self.tableView registerNib:nib forCellReuseIdentifier:@"BR1LineCellRightImg"];


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    BR1LineCellRightImg *cell = [tableView dequeueReusableCellWithIdentifier:@"BR1LineCellRightImg"];
    //extra code
    return cell;

然而,prepareForSegue 方法将永远不会被调用,尽管我已经在 Storyboard 中使用自定义类和标识符设置了原型单元的 segue,并且标识符是“BR1LineCellRightImg”

【问题讨论】:

如果您在情节提要中使用原型单元格,那么您不应该为重用标识符注册 nib 文件 - 它会覆盖您在情节提要中的任何配置。您应该直接在情节提要中布置原型单元格。 感谢您的回复。我想我必须接受你的建议 【参考方案1】:

如果您在情节提要中使用原型单元格,则不应为重用标识符注册 nib 文件 - 它会覆盖您在情节提要中的任何配置。

您应该直接在情节提要中布局原型单元,然后情节提要流程将为您注册重用标识符。

【讨论】:

以上是关于为自定义 UITableViewCell 加载和注册 nib 时未调用 prepareForSegue的主要内容,如果未能解决你的问题,请参考以下文章

Objective c - 为自定义 UITableViewCell 的按钮处理按钮触摸事件的最佳实践

FirebaseUi - Swift - 将 UITableViewCell 的值转换为自定义类

如何使选定的单元格为自定义单元格 UITableViewCell 变成不同的颜色

iPhone UITableViewCell SwipeGesture

请问如何自定义UITableViewCell的背景颜色

创建自定义 UITableViewCell