Xcode 6更改了View Controller

时间:2014-12-23 21:00:29

标签: ios xcode view controller

我有两个视图控制器,一个叫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

我该怎么办? (抱歉我的英语不好)。

3 个答案:

答案 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];

希望这有助于......:)