我有一个嵌入了UITableView的UIView。
同一视图中的一个文本字段应控制表格的单元格编号。
如果用户输入数字4,TableView应立即更改其单元格编号以反映用户输入的内容。
单元格的内容将类似于“请选择”。

然后,当用户选择一个单元格时,应该出现一个“日期选择器”,让用户选择日期/时间,然后,当取消选择器时,该单元格应更改为所选的日期/时间。

自从超过两天以来,我为此感到疯狂。我没有在这里放置任何代码,因为我真的不知道从哪里开始,到目前为止我尝试过的所有事情都完全失败了。

如果有人可以引导我找到解决方案,我将不胜感激。
谢谢。

最佳答案

如果您在iPad上,则当用户选择它时,可以显示来自选定单元格的UIPopOverController。在iPhone上,您可以显示一个模式视图控制器。

为此,请参见-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

您必须实现一些代码,该代码可以处理从UIDatePicker的呈现视图控制器被取消时获取值的情况。另外,您还必须将UIDatePicker托管在视图控制器中,因为(据我所知)无法单独呈现它。

因此,我建议的解决方案是:

  • 创建一个新的视图控制器,该控制器承载要显示的UIDatePicker。
  • 在该视图控制器上,单击“确定”和“取消”按钮。
  • 向该视图控制器添加一个引用“主”视图控制器的属性。这样一来,承载UIDatePicker的视图控制器可以在选择日期后将消息发送到“主”视图控制器。
  • 在“主”视图控制器中,处理UITableView的tableView:didSelectRowAtIndexPath:事件。
  • 显示视图控制器以向用户显示UIDatePicker。
  • 如果用户选择“确定”,请关闭modal / popOver视图控制器并使用新信息更新单元格(您可能需要NSDate值数组和对[tableView reloadData]的调用才能执行此操作)。
  • 如果用户选择“取消”,请关闭modal / popOver视图控制器,并且不要进行任何更新。
  • 10-07 14:11
    查看更多