1

私のiPhoneアプリケーションには、2つのシーンがあり、どちらもビューコントローラーです。通常、最初のシーンは最初のシーンに設定されます。ユーザーがプレイすると、2番目のものに渡されます。

この時点で、ユーザーがアプリを閉じて再起動すると、ユーザーがすでにプレイしている場合は、2番目のシーンから開始する必要があるため、そのユーザーの最初のシーンが変更されます。

これどうやってするの?

そして、私はナビゲーションコントローラーを使用しません。

4

1 に答える 1

4

xibsを使用している場合は、アプリデリゲートでこれを設定します 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ソリューションを使用することにした場合は、プロジェクトからストーリーボードを削除し、ここでも削除します。

ここに画像の説明を入力してください

于 2012-07-26T14:36:39.757 に答える