Ipad 在视图控制器之间导航时,我想将文本保存在uitextfields中

Ipad 在视图控制器之间导航时,我想将文本保存在uitextfields中,ipad,uiviewcontroller,uinavigationcontroller,ios6,xcode4.5,Ipad,Uiviewcontroller,Uinavigationcontroller,Ios6,Xcode4.5,我有一个ipad应用程序,它有一系列的ViewController,每个都有一组uitextfields。基本上,我希望能够做到的是,在不同的ViewController中导航时,我希望文本保留在已编辑的每个uitextfield中。现在发生的是,当我离开某个viewcontroller并返回它时,每个uitextfield都是空的。要解决这个问题,我会调用viewWillEnglish或viewDidEnglish方法吗?如果是这样,我如何让它保存每个文本字段中的信息?您可能会滥用should

我有一个ipad应用程序,它有一系列的ViewController,每个都有一组uitextfields。基本上,我希望能够做到的是,在不同的ViewController中导航时,我希望文本保留在已编辑的每个uitextfield中。现在发生的是,当我离开某个viewcontroller并返回它时,每个uitextfield都是空的。要解决这个问题,我会调用viewWillEnglish或viewDidEnglish方法吗?如果是这样,我如何让它保存每个文本字段中的信息?

您可能会滥用
shouldchangeCharactersRange
方法,将目前键入的字符保存到一个额外的字符串中,并在切换viewcontroller后将其还原

更新

对于视图中的每个文本字段,您需要设置一个saveString并将其关联,或者将标记值作为数组索引,然后您可以:

添加类的接口定义

将每个文本字段的委托设置为
self

添加此方法

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    NSString *s = [textField replaceCharactersInRange:range withString:string];
    NSLog(@"current textfield value '%@'", s);
    // save s somwhere, e.g. to userdefaults or a DB table
    return YES;
}

现在,在切换回上一个视图后,可以恢复每个文本字段以前的内容。我已经输入了NSLog(),以便您可以看到何时调用此方法。

您只是在执行模态分段吗?当您想返回到上一个视图时,只需使用
[self dismissViewControllerAnimated:YES completion:nil]
即可,之前填写的所有内容仍将保留。只有回到最初的视图,文本才会消失。但是,如果出于某种原因需要切换回初始视图,只需将文本保存到NSUserDefaults,然后使用ViewWillDisplay上保存的值填充字段。但最好的做法是始终关闭ViewController,而不是执行循环分段

谢谢你的评论。原谅我,你能给我举个小例子说明怎么做吗?这个概念对我们来说是100%新的me@Taylor我添加了一个示例。谢谢,这正是我需要的!非常感谢