使用导航栏返回时,防止在视图控制器中重置用户字段

时间:2014-02-14 03:56:50

标签: ios objective-c uinavigationcontroller uinavigationbar

我最近在这里找到了一些帮助,如何在将我的应用程序放入后台,终止和重新启动时恢复文本字段,按钮状态等。

我现在要弄清楚的是,当使用导航栏中的后退箭头返回主菜单时,如何保持相同的信息。当然,当我在子视图上填写信息时,点击后退按钮进入主菜单,我的所有用户字段和按钮状态都会重置为初始状态。

我不确定您可能希望在此处看到哪些代码。我很乐意提供任何东西,但我不太确定什么是相关的。

我的应用设置非常简单。它看起来像这样:

--->导航控制器---->主菜单----->计算器

主菜单嵌入在导航控制器中。我只需要能够从计算器返回主菜单,而不会丢失用户输入计算器字段的数据。

提前致谢。

编辑 - 这是我用来保存和恢复一般状态保存/恢复数据的代码 - 添加了代码:

-(void)encodeRestorableStateWithCoder:(NSCoder *)coder
{
    // start level text
    [coder encodeObject:_startLevel.text forKey:@"startText"];
    [super encodeRestorableStateWithCoder:coder];
}

-(void)decodeRestorableStateWithCoder:(NSCoder *)coder
{
    // start level text
    _startLevel.text = [coder decodeObjectForKey:@"startText"];
    [super decodeRestorableStateWithCoder:coder];
}

2 个答案:

答案 0 :(得分:1)

有多种方法可以存储/恢复数据..

  1. 您可以制作Singleton class并在/中存储/检索数据 这一点。
  2. 您可以在NSUserDefaults
  3. 中存储/检索数据
  4. 您可以在数据库中存储/检索数据,例如sqliteCoreData
  5. 您可以在文件中存储/检索数据,如文本文件,plist。 文件。
  6. 这取决于你,最适合你的是什么。但是,您可以将数据保存在viewDidUnloadviewWillDisappear中,并在计算器视图控制器的viewDidLoadviewWillAppear中检索该数据。

答案 1 :(得分:0)

  

我最近在这里找到了一些帮助,如何恢复我的文字   将我的应用程序放入后台时,字段,按钮状态等   终止并重新启动。

所以看起来你有一种存储和检索数据的机制。

现在当您回到主菜单时,您可以将数据保存在viewWillDisappear委托中,并使用计算器控制器的viewWillAppear方法恢复数据。

希望这有帮助。