iphone改变了最初的场景

时间:2012-07-26 14:28:51

标签: objective-c ios cocoa-touch

在我的iphone应用程序中,我有两个场景,它们都是视图控制器。 通常将初始场景设置为第一个场景。当用户播放时,它将传递给第二个。

此时,当用户关闭应用程序并重新启动时,如果用户已经玩过,则应该从第二个场景开始,因此初始场景应该为该用户更改。

我该怎么做?

我不使用导航控制器。

1 个答案:

答案 0 :(得分:4)

如果您使用的是xib,请在app delegates中进行设置 applicationDidFinishLaunchingWithOptions

创建一个全局BOOL并检查它在应用程序启动时的值,例如:

·H

@class ViewController;
@class SecondViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@property (strong, nonatomic) SecondViewController *SecondViewController;

的.m

#import "ViewController.h"
#import "SecondViewController.h"

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    if (isSecondViewControllerBool == YES) {
        self.SecondViewController = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
    }else{
        self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    }
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];
    return YES;
}

对于故事板:

在第一个视图控制器viewDidLoad中。

- (void)viewDidLoad
{
    if (isSecondViewControllerBool == YES) {
        UIViewController *secondVC = [self.storyboard instantiateViewControllerWithIdentifier:@"mySecondViewController"];
        [self presentViewController:secondVC animated:NO completion:nil];

    }else{
        //present normally
    }
}

如果您正在使用故事板并决定使用我的xib解决方案,请从项目中删除故事板,并在此处将其删除:

enter image description here