如何以编程方式将日期从UIDatePicker作为字符串传递到另一个视图控制器中的UITableView的titleForHeaderInSection?



现在在我的TableViewController.m中,我有一个UITableView,其日期已转换为titleForHeaderInSection的字符串。此字符串称为 gamePlayedOnDateDisplayString,在用户创建游戏时设置。该字符串设置为创建特定"游戏"的日期。我已将此字符串的逻辑写入到一个文件中,该文件是游戏模型的扩展。

我想实现一个功能,用户可以选择特定的游戏并使用UIDatePicker更改日期。我创建了一个名为 UIDatePickerViewController 的新视图控制器来显示我的 UIDatePicker。当用户在选择器上选择一个日期并点击"完成"时,我希望该日期更新游戏PlayedOnDateDisplayString。

我最初的想法是使用代表。例如,当用户在我的UIDatePickerViewController上点击"DONE"时,它会与我的TableViewController.m通信以更新titleForHeaderInSection,但是在尝试实现它时我有点迷茫。我希望你们中的一个人能为我指出正确的方向。我希望这是足够的信息。

谢谢。

带有日期选择器的视图控制器是编辑日期的完美方法,可能是最好的方法。 同样,委托是否是一种可接受的 - 但可能不是最好的 - 将日期更改传达回表 vc 的方式。

记住几个想法:这些 vc 的目的是呈现和编辑模型的各个方面。 不使用委托的一个非常好的模式是这样的:

  1. 在 VC 的 准备 Segue 表上,将要编辑的游戏设置为即将呈现的视图控制器上的属性(不要将其视为 DateSettingViewController,而是将其视为 GameEditViewController(

  2. 该游戏编辑视图控制器在用户选择日期时,应在其正在编辑的游戏上设置选择日期。

  3. 这是令人高兴的非委托部分:表 vc 应在出现时重新加载其数据。 据推测,它有一个游戏数组,在重新出现时,其中一个游戏现在具有编辑的日期属性,当它相应的表格单元格重新加载时,这将很明显。

  4. (更多的是偶然的一点,但是(NSDate 是一个比仅描述特定区域设置中的日期的字符串更丰富、更强大的对象。 尽量避免传递(和存储(日期的字符串表示形式。 尽可能使 NSDate 成为事实来源,仅在人类需要查看时才转换为字符串,例如在配置单元时。

最新更新