我有两个视图控制器,一个叫Main
,另一个叫InserirCodigoViewController
。我有一个名为`contarParaMudar的int
。我的代码是:
-(IBAction)ok:(id)sender {
if (completeLevel == true) {
contarParaMudar = 1;
} else if (contarParaMudar == 1) {
UIStoryboard *mainStoryboar = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *vc = [mainStoryboar instantiateViewControllerWithIdentifier:@"InserirCodigoViewController"];
[self presentViewController:vc animated:YES completion:nil];
}
}
但我想要以下内容:当用户打开应用并completeLevel = true
时,iphone必须直接加载InserirCodigoViewController
我该怎么办? (抱歉我的英语不好)。
答案 0 :(得分:0)
只需在MainVC中添加viewDidAppear
方法,然后执行您在其中发布的代码......
要存储BOOL,请使用NSUserDefaults
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"completeLevel"];
[[NSUserDefaults standardUserDefaults] synchronize];
加载
if([[NSUserDefaults standardUserDefaults] boolForKey:@"completeLevel"] == YES) {
//load your VC
}
答案 1 :(得分:0)
我在我的项目中做了类似的事情,我将completeLevel保存到NSUserDefaults中,然后根据其值决定视图控制器显示在我的appdelegate中
或者您可以按照Neo
的建议使用viewDidAppear答案 2 :(得分:0)
当关卡完成后,将completeLevel
设置为YES
,这是第一次将其设为NO
。您可以将BOOL
值存储在NSUserDefaults
中,如下所示:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"completeLevel"];
[[NSUserDefaults standardUserDefaults] synchronize];
正如你所说“当用户打开app并且completeLevel = true时,iphone必须直接加载InserirCodigoViewController”
对于你的AppDelegate的didFinishLaunchingWithOptions
,你必须这样做:
BOOL isLoggedIn = [[NSUserDefaults standardUserDefaults] boolForKey:@"completeLevel"] == YES;
NSString *storyboardId = isLoggedIn ? @"Main" : @"InserirCodigoViewController";
self.window.rootViewController = [self.window.rootViewController.storyboard instantiateViewControllerWithIdentifier:storyboardId];
希望这有助于......:)