Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone,当我使用pushViewController作为选择屏幕时,我应该如何保持值?_Iphone_Objective C_Xcode - Fatal编程技术网

iPhone,当我使用pushViewController作为选择屏幕时,我应该如何保持值?

iPhone,当我使用pushViewController作为选择屏幕时,我应该如何保持值?,iphone,objective-c,xcode,Iphone,Objective C,Xcode,我有一个视图,用于添加新记录或编辑现有记录。在视图中将显示我加载记录或将文本字段留空 我有一个选择屏幕,使用添加/编辑屏幕上的pushViewController显示。一旦我选择了该值并返回到上一个屏幕,就会调用ViewWillDisplay并重新加载记录,我会丢失任何修改过的textfield值 如何保留已更改且当前丢失的值 我想你会问的一个问题是,为什么不在VIEW中加载你的记录呢?加载好的,屏幕可以被大量使用,并且不会每次显示屏幕时都调用它。不要依赖视图来保存状态。您应该将对视图中显示的数

我有一个视图,用于添加新记录或编辑现有记录。在视图中将显示我加载记录或将文本字段留空

我有一个选择屏幕,使用添加/编辑屏幕上的pushViewController显示。一旦我选择了该值并返回到上一个屏幕,就会调用ViewWillDisplay并重新加载记录,我会丢失任何修改过的textfield值

如何保留已更改且当前丢失的值


我想你会问的一个问题是,为什么不在VIEW中加载你的记录呢?加载好的,屏幕可以被大量使用,并且不会每次显示屏幕时都调用它。

不要依赖视图来保存状态。您应该将对视图中显示的数据所做的更改保存到某种形式的模型对象中。这样,您可以在任意点重新加载或重新创建视图,并通过使用特定模型中的值重新填充视图,将其返回到相同的状态

此模式很重要,因为您希望视图控制器能够根据需要卸载和重新加载视图,以减少内存使用。UIViewController会根据内存警告自动执行此操作,因此,如果您假设视图在不可见时仍保留旧数据,则会丢失该信息

在您的情况下,听起来您应该在用户更改文本字段中的值时更新此记录。然后,您可以将记录中的值重新加载到-viewWillDisplay:方法中的文本字段中

不幸的是,我不知道如何更具体,除非你展示你正在使用的代码