即使UIViewController已取消分配,也保留布尔值(或一般的变量)

时间:2012-01-12 22:02:59

标签: objective-c cocoa-touch ios5

我有一个UIViewController(firstViewController),它有一个'segue'到另一个UIViewController(secondViewController)的按钮。第一次出现secondViewController我希望出现UIAlertView。现在我觉得这起初很容易 - 我想我只是创建一个布尔变量并在第一次显示UIAlertView后将其设置为1。但是我现在意识到每次用户回击(到firstViewControllerand)然后再次单击按钮以显示secondViewController时,布尔变量将重新初始化。

这类事情的最佳做法是什么?

感谢您的帮助!

亚历

2 个答案:

答案 0 :(得分:0)

这是NSUserDefaults的一个很好的用例。这样,您就可以通过方便的方式存储BOOLintfloatNSStringNSDate等。

使用

设置BOOL
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"seenIt"];
[defaults synchronize];

并使用

检索它
NSUserDefaults* defaults = [NSUserDefaults standardUserDefaults];
BOOL seenIt = [defaults boolForKey:@"seenIt"];

答案 1 :(得分:0)

虽然另一种解决方案有效,但我会使用更简单的解决方案,即

只需添加另一个名为constants的C头文件并初始化一个Integer变量

int buttonPressed;

然后在firstViewController

#include constants.h
按下按钮上的

buttonPressed =buttonpressed+1;

然后在secondViewController

#include Constants.h

if(buttonPressed==1)
{
 ///Show alert View
}