您正在尝试做的是非常标准的Dynamic Prototype
单元格(与Static Cells
您可能用来制作该屏幕截图的方法相反)。您最好的选择可能是观看其中的一些教程。
为了快速总结一下,您将要在Value
屏幕截图部分显示的所有字符串放入NSArray
. 有一些方法可以自动处理将数组UITableViewDelegate
中UITableViewDataSource
的第 i 个项目放入第 i 个单元格(因此数组中的第 3 个项目将进入第 3 个单元格等)。为了允许用户编辑内容,您将想要制作一个全新的第二个屏幕(这就是您UITextfields
将要在的地方)。当用户从第二个屏幕返回到您的表格屏幕时,您将数组中的项目替换为用户在 中输入的任何内容UITextfield
,然后告诉UITableViewDelegate
方法用新的 s 重新加载表格Value
。
我链接到的大多数教程可能都没有关于拥有多个组的内容,所以我会在这里添加一些内容(如果你先看教程,下面的内容可能才有意义,所以我建议跟随教程,然后回到这里并进行我即将建议的更改)。NSIndexPath
发送到该方法的tableView:cellForRowAtIndexPath
包含有关单元格row
和的信息section
。每个“组”都是它自己的section
(我真的不确定为什么 Apple 决定为同一事物使用两个不同的名称,但事实就是如此)。执行此操作的最简单方法是为每个部分设置不同的数组(因此您将拥有用于NSMutableArray *firstSectionArray = [[NSMutableArray alloc] init];
、NSMutableArray *secondSectionArray = [[NSMutableArray alloc] init];
等的行)。然后,在你tableView:cellForRowAtIndexPath
方法的最顶端,你放了一些if
中的语句以查看section
您正在“构建”的表,并相应地使用正确数组中的值。就像是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section == 0)
{
// bunch of stuff from the tutorials here to create "cell"
[cell.detailTextLabel.text = firstSectionArray objectAtIndex:indexPath.row];
// bunch more stuff
}
else if (indexPath.section == 1)
{
// bunch of stuff from the tutorials here to create "cell"
[cell.detailTextLabel.text = secondSectionArray objectAtIndex:indexPath.row];
// bunch more stuff
}
// else if (keep going for however many sections you have)
return cell;
}