在我的应用程序中,我使用的是导航控制器。我的问题是,当我转到上一个视图,然后返回到当前视图时,这个视图中的所有TextFields都是空的。
当我从导航控制器浏览堆栈时,我不知道如何保存这些值(在文本字段中)。
下面是我调用popViewControllerAnimated的方法:
- (IBAction)swipeBack:(id)sender {
[self.navigationController popViewControllerAnimated:YES];
}发布于 2012-06-19 18:12:50
在上一个视图的.h文件中,声明一个属性:
@property (noonatomic, retain) YOURVIEWCONTROLLER *secondVC;然后在您的@实现中,合成属性:
@synthesize secondVC;然后用以下代码替换您将视图控制器表示为模式视图的代码:
if(!secondVC){
YOURVIEWCONTROLLER *controller=[[YOURVIEWCONTROLLER alloc]init.......];
[self setSecondVC:controller];
[controller release];//if you ain't using arc else just set it to nil
controller=nil;
}
[self presentModalViewController:self.secondVC animated:YES];‘'YOURVIEWCONTROLLER’是包含文本字段的第二个视图控制器的类名。不要忘记释放-dealloc中的secondVC属性。希望能有所帮助。
发布于 2012-06-18 21:55:36
当您推入或弹出视图控制器时,将分别从内存中加载或卸载它。您需要在弹出控制器之前保存该信息,并在分配新的控制器之后并在将其推送到堆栈之前加载该信息。您可以使用NSUserDefaults或基本文件I/O来保存和重新加载信息。
保存:
正在加载:
发布于 2012-06-18 21:56:04
这里有两件事要处理: 1.保存文本字段的内容。2.再次按下视图控制器时,恢复文本字段的内容。
第一个问题可以通过将文本字段值保存到全局对象(如AppDelegate或任何其他全局单例)来解决。
处理2的最好方法是为带有文本字段的视图控制器创建初始化器。例如:
- (id)initWithOptions:(NSDictionary*)options;然后,当您需要将控制器推送到堆栈上时,您将从1的全局存储中获取先前保存的值,并将它们传递到选项字典中。然后,在viewDidLoad中,将这些值分配给字段。
https://stackoverflow.com/questions/11084287
复制相似问题