当我的应用首次启动时,会出现UIAlertController消息并询问用户是否需要转到设置应用。使用以下代码。
dispatch_async(dispatch_get_main_queue(), ^{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs:root=Wi-Fi"]];
});
返回App后,使用ViewDidLoad中的此代码显示相同的UIAlertController消息:
-(void)viewDidLoad {
if (launched == NO) {
launched = YES;
defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:launched forKey:@"boolKey"];
[defaults synchronize];
My code for the UIAlertController.
} else if (launched == YES) {
[self doSomeThing];
}
}
当info.plist应用程序中的设置未在后台运行时,我的Bool值未被保存:设置为YES,但如果应用程序未在后台运行:设置为NO,则else语句为执行。然而,这并不好,因为我的应用程序被暂停,再次启动时,我需要显示原始消息,但不会,应用程序将恢复到其最后状态。
非常感谢任何建议。
JZ
答案 0 :(得分:1)
1.-保存到NSUserDefaults不会将任何内容保存到info.plist中。 NSUserDefaults有自己的plist,如果你删除你的应用程序就会被删除。
如果您想阻止启动相同的警报视图:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults boolForKey:@"boolKey"]) {
defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"boolKey"];
My code for the UIAlertController.
}
else {
//Whatever you need to do if its not first launch
}
现在下次你点击你的viewDidLoad,因为boolForKey:@“boolKey”有一个YES,你将不会点击该代码,并且不会显示alertView。