将UIAlertControllers UITextField文本保存为核心数据

时间:2016-10-04 21:25:23

标签: ios swift cocoa-touch

我创建了一个带有三个按钮和一个UITextField的UIAlertController。我希望能够将用户输入保存在另一个ViewController的UITableView行单元格中。

我试图将UiTextField文本保存在数组中无济于事。

如何将此输入保存到阵列,以便我可以保存到核心数据。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通常,您不会将字符串直接保存到Core Data。它用于存储enteties,但可能有字符串作为其属性。

如果从当前视图控制器推送带有UITableView的视图控制器,并且您不需要保留数据,则可以将每个字符串用户输入到UIAlertController按钮的一个处理程序中的文本字段中,如下所示

let saveAction = UIAlertAction(title: "Save", style: UIAlertActionStyle.default, handler: {
            alert -> Void in            
            let textField = alertController.textFields!.first
            self.dataSource.append(textField.text)
        })

然后您可以将dataSource传递给下一个视图控制器。

或者,您可以实现NSManagedObject子类并在saveAction回调中创建它的实例。在这种情况下,您的数据源应该是一个自定义NSManagedObjects子类的数组,每次执行saveAction时,您应该创建一个新实例saveContext并将此实例附加到dataSource。然后,您将能够在任何控制器中获取这些实例,而无需将其与另一个实例绑定。

您可以发现本教程对创建和获取Core Data实例很有用。它还使用UIAlertController和UITextField来输入新数据:

https://www.raywenderlich.com/115695/getting-started-with-core-data-tutorial