使用一个视图控制器从用户那里获取文本,将该值添加到数据库并在另一个 VC 中显示它[关闭]

Posted

技术标签:

【中文标题】使用一个视图控制器从用户那里获取文本,将该值添加到数据库并在另一个 VC 中显示它[关闭]【英文标题】:Obtaining text from a user with one View Controller, Adding that value to the database and displaying it in another VC [closed] 【发布时间】:2013-10-04 05:43:08 【问题描述】:

我是编程新手,所以请多多包涵。

我想要实现的基本目标如下。提示用户在 ModalViewController 中输入文本,使用 Core Data 将该文本添加到数据库中并在 TableViewController 中显示该文本。

我已经为此做了一些广泛的工作,并且我已经设置了核心数据模型和实体。 ModalViewController 是一个 UITextFieldDelegate,它调用适当的 textFieldDidEndEditing 并且我设置了 self.delegate = self。

我在 ModalViewController 中创建了一个协议,它将文本发送到它的呈现视图控制器。 Presenting View Controller 调用该 Delegate 方法并获取文本。所以这就是我卡住的地方。

使用断点和 NSLog,我可以看到当呈现的表视图控制器调用该委托方法时,它具有正确的值;我添加到模态视图控制器中的就是那个值。 NSLog 也显示了它。

从这个委托方法中,我调用了一个useDocument方法,它基本上做了3个if语句,检查文档是否被创建,检查文档的状态和是否关闭,检查文档是否处于打开状态。

我有一个 NSManagedObjectSubClass 来表示“Person”实体,所以在那个类中,使用类别,我有一个名为 personWithName:(NSString *)name inManagedObjectContext 的方法,从 useDocument 方法中,我调用了一个 transactionInDatabase 方法,该方法又调用了这个方法。

Person Category 进入并执行 insertNewObjectForEntityForName。它继续并将 person.name 的值设置为 = name (传入的)。

调试表明这是可行的,并且将 person.name 的值(当然是 Person 实体中的一个属性)设置为名称,直到在此方法结束时返回“person”并突然返回该值是零。

在模态视图控制器中,“名称”属性是非原子的,复制但我尝试过强弱相同的效果。

基本上,我希望用户将文本添加到模态视图控制器并将该文本添加到数据库中,因此在呈现视图控制器中,当我调用该实体并执行 NSFetchRequest 时,结果会出现在 TableViewController 中。

我知道这是一个相当复杂的设置,但与此同时,我可以想象这也很常见,因此任何对此的启示都会受到极大的赞赏。

【问题讨论】:

简单描述你的问题 只告诉其他人可能需要知道什么来告诉解决方案。阅读问题后,我不知道您要做什么。 嗨 Manujmv,我想从用户的一个视图控制器中获取文本,将该值添加到核心数据数据库实体中,并将​​该值显示在另一个视图控制器中,该视图控制器是表视图控制器。我想重复一遍。 感谢 Harkrishnan - 刚刚添加了一条评论 - 基本上,从用户的一个 VC 获取文本,将该值添加到核心数据数据库中,然后在另一个 VC 中显示该值来执行 fetchrequest 这受到“TL;DR”的影响。请把它编辑成一个简洁的问题。 【参考方案1】:

首先您需要了解 CoreData、Viewcontrollers 的基础知识。

最好试试这个This is all you want。

【讨论】:

感谢 Viruss mca,老实说,这正是我所需要的。再次感谢。

以上是关于使用一个视图控制器从用户那里获取文本,将该值添加到数据库并在另一个 VC 中显示它[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用文本视图值查询数据库行等于文本视图值?

从 uitableviewcell 获取文本输入

我在 excel VBA 中有一个函数,它使用文本框从用户那里获取输入

在 Qt 中从用户那里获取几个值?

如何使用委托给 self 调用 presentViewController?

最终用户如何选择 Dock、Anchor、Location、