我正在尝试实现一个系统,用户最初在uinavigationview中以uitableview(分组样式)呈现单个tablecell。
---------------
+ | add record |
---------------
当他们点击单元格时,他们会被推到一个新的屏幕上,在那里他们填写一些文本视图(可能嵌入在tableview的单元格中)
---------------
| (name) |
---------------
| (phone num) |
---------------
然后当他们返回时,他们可以看到新记录以及“添加记录”单元格。
---------------
| record 1 |
---------------
+ | add record |
---------------
(当他们再次进入记录1时会有一个删除按钮)
是否有任何示例代码或库可以实现此目的?
答案 0 :(得分:2)
恕我直言的任务很简单。您不需要任何代码示例。 您所需要的只是了解UITableView数据源的工作原理以及UINavigationView的工作原理。
阅读本2指南:
实现此功能应该足够了。
简而言之,您应该使用“添加记录”单元格将UITableView
推入UINavigationController
堆栈。在此单元格的选择事件上,您应该推送另一个UITableView
或您的自定义视图。当用户按下“完成”按钮时 - 您应该将更改的数据保存到模型中并从UINavigationController
堆栈中提取当前视图。在那之后,您应该告诉您的第一个UITableView
模型已更改,它将再次阅读。
回答评论
您应该设计数据结构。例如。你的模型将是MyRecord对象的NSMutableArray。所以你检查tableView:cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:CellIdentifier]
autorelease];
}
if[recordsArray count] > 0 {
// you have some records
if(indexPath.row < [recordsArray count]) {
MyRecord *record = [recordsArray objectAtIndex:indexPath.row];
cell.textLabel.text = record.name;
} else {
// last cell is Add Record
cell.textLabel.text = @"Add Record";
}
} else {
cell.textLabel.text = @"Add Record";
}
return cell;
}
这只是一个想法。它可以包含一些愚蠢的东西(比如2个硬编码的@“添加记录”),但想法应该是明确的