使用来自单独的表视图控制器的选定单元格填充文本字段

时间:2014-03-04 07:26:55

标签: ios core-data uitableview protocols nsfetchedresultscontroller

我有一个工作的应用程序,只需要一些修改。这是一个带有Table View Controller的基本应用程序,当用户点击Plus按钮并将一些信息填入文本字段时,该应用程序将被填充。用户将输入名称和事件,并通过在文本字段下创建表格视图单元格,使我的生活更轻松,这样当用户开始键入时,它会自动填充用户之前输入的相同名称。

我正在使用Core Data和NSFetchedResultsController。我正在修改应用程序,以便为用户提供更加无缝的功能。我在选择文本字段时不是弹出键盘,而是将用户模态地带到另一个表视图控制器,用户可以从表视图单元中搜索,创建或只选择现有条目。

我已经使用NSFetchedResultsController显示新的表视图控制器并显示现有条目,并且运行良好。

我的问题是:如何在新的表格视图控制器中选择一个单元格并让单元格的选择做两件事:

1)关闭模态视图 2)使用表视图控制器中的所选名称(以模态方式出现)填充名称文本字段(在显示新表视图的视图控制器中)。

如果表视图在同一个视图控制器中,我有这个工作,但我不太确定如何从其他表视图控制器中提取该信息。

我猜我会使用协议,但我是一个新手,所以任何指向正确的方向甚至一些简单的示例代码都会受到大力赞赏!

谢谢,

1 个答案:

答案 0 :(得分:0)

您必须实现委托协议。

这个想法是VC1应该符合委托(即需要有一个过程 - (void)dataAvail:(NSString *)数据withViewController:(ViewController *)sender {...})。 VC1将推送VC2并设置VC2.delegate = self。

在VC2中,当选择单元格时,只需调用[self.delegate dataAvail:self.yourTextField.text withViewController:self];

现在,在您的VC1中,您应该实现dataAvail ...只需获取值并关闭您的模态VC2。

有关如何声明协议的更多信息,只需谷歌“ios委托教程”。委托协议在iOS编码时随处可用(如MVC或KVC)。