我的应用的super viewDidLoad
部分中有以下代码:
if ( appCounter < 1 ) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Disclaimer", "")
message:NSLocalizedString(@"By agrreing to use this service, dont use while driving", "")
delegate:nil
cancelButtonTitle:@"I Agree to not use this while Driving"
otherButtonTitles: nil];
[alert show];
appCounter = appCounter+1;
}
基本上,它应该在应用加载时显示免责声明。但每次用户离开主屏幕,然后返回主场景(多视图应用程序)时,免责声明会再次弹出。
我原以为应用程序计数器会阻止它,但它仍然会弹出。
有人可以指出我的代码中哪里出错了吗?以及我需要做些什么来纠正这个问题?
提前谢谢。
答案 0 :(得分:1)
假设您在类中声明appCounter
为实例变量,例如
@interface MyViewController () {
int appCounter
}
然后每次都会创建一个新的MyViewController,appCounter
将重置为零。
你希望appCounter
是静态的:一劳永逸。您可以使用静态变量声明替换当前版本:
static int appCounter;
(即你的.m文件,而不是在接口定义中)。这应该是一劳永逸的。还有其他方法可以在ViewController的所有实例之间共享appCounter
(有些人对于声明静态变量很有趣,即使它们无法从该模块外部访问),但这是最简单的。