objective-c - 更改 View 时如何保存数据

标签 objective-c ios xcode

我希望有一个简单的问题(但我无法解决它:))我有2个 View ,在 View 1上我有UILabels,如果我导航到 View 2然后去,我可以通过单击按钮更改文本返回 View 1 文本已重置。

当 View 更改时,有什么方法可以保留标签上的文本吗?

最初我使用:

-(IBAction) napButton: 
(id) sender{ nap *nap1 = [[nap alloc] initWithNibName:nil bundle:nil]; 
[self presentModalViewController:nap1 animated:YES]; 

这执行了一个简单的 View 切换。根据下面的建议,我将其更改为:

-(IBAction) napButton: 
(id) sender{ nap *nap1 = [[nap alloc] initWithNibName:@"nap" bundle:nil]; 
[self.navigationController pushViewController:nap1]; 
[nap1 release]; } } 

按钮不执行任何操作,我收到警告UINavigationController 可能无法响应 -pushViewController

最佳答案

使用UINavigationController .在内存受限的设备中,这是推送或弹出新 View 同时保留先前 View 中的数据或状态的最佳方式。

UINavigationController 的实例可以在代码中或在 XIB 文件中相对轻松地创建。它被认为是一个堆栈:它有一个 Root View Controller ,然后新的 View Controller 可以被插入堆栈(通常当用户点击表中的一行时)或从堆栈中弹出(通常通过按后退按钮) )。

我们有 4 种方法用于在堆栈中导航用户:

– pushViewController:animated:
– popViewControllerAnimated:
– popToRootViewControllerAnimated:
– popToViewController:animated:

例如,如果您想从 view1 移动到 view2,则需要从 view1 执行此操作 -

SecondViewController *secondView = [[SecondViewController alloc]
        initWithNibName:@"SecondViewController" bundle:nil];
    [self.navigationController pushViewController:secondView];
    [secondView release];

要返回到之前的状态,即从 view2 到 view1,您需要从 view2 执行此操作 -

[self.navigationController popViewControllerAnimated:YES];

这应该以最有效的方式解决您的问题。

关于objective-c - 更改 View 时如何保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8430547/

相关文章:

ios - 与两个透明纹理的 Alpha 混合无法正常工作

html - IOS应用程序背景全尺寸不覆盖全

ios - 在 Objective C 中对宏值进行字符串化?

iphone - ios bool 变量声明

ios - 如何在不显示中间 View 的情况下展开多个 View

ios - 继承从 nib 加载的 UIView 子类

iphone - 自动释放和选择器

iphone - IOS Dev Library 在你的 mac 上离线

ios - 如何存储电平数据

iphone - iPhone 资源的单独目录