如何使用cellForRowAtIndexPath从TableView获取自定义UITableViewCell?

时间:2013-07-11 13:53:53

标签: objective-c uitableview uitextfield custom-cell

我的一个视图中有一个表,我想使用该表来允许用户输入数据。为此,我创建了一个完美的自定义UITableViewCell。

尝试从每个单元格中取出文本时出现问题。我查看了所有文档,找不到任何解决方案。任何帮助将不胜感激!

此方法的代码为:

    Subject *subject = [self.arrayOfSubjects objectAtIndex:i];

    AddSubjectDetailsCell *cell;
    NSIndexPath *indexPath = [[NSIndexPath alloc] initWithIndex:i];
    cell = [tableView cellForRowAtIndexPath:indexPath];

    subject.title = cell.subjectTitleField.text;
    subject.room = cell.subjectRoomField.text;
    subject.teacher = cell.subjectTeacherField.text;

有没有人有办法将常规单元格转换为自定义单元格或其他方式从文本字段中提取文本?

谢谢!

2 个答案:

答案 0 :(得分:1)

您已经获得了AddSubjectDetailsCell的实例,它只是作为父类型UITableViewCell返回给您,因为这是所有UITableView都知道的。你所要做的就是把它投射到它的特定类型:

AddSubjectDetailsCell *cell;
NSIndexPath *indexPath = [[NSIndexPath alloc] initWithIndex:i];
cell = (AddSubjectDetailsCell *)[tableView cellForRowAtIndexPath:indexPath];

答案 1 :(得分:0)

@Timothy的回答可能是一个解决方案,但为什么不在实例化时将模型对象链接到自定义单元格?

而不是最终查询用户界面,您可以直接在单元格实现中更新模型

我肯定会为每个单元格的相应Subject添加一个弱引用,然后在进行单元用户操作时更新它。

某种类似的设计,即使不是封装的:http://eppz.eu/blog/custom-uitableview-cell/