私のiPhoneアプリケーションには、2つのシーンがあり、どちらもビューコントローラーです。通常、最初のシーンは最初のシーンに設定されます。ユーザーがプレイすると、2番目のものに渡されます。
この時点で、ユーザーがアプリを閉じて再起動すると、ユーザーがすでにプレイしている場合は、2番目のシーンから開始する必要があるため、そのユーザーの最初のシーンが変更されます。
これどうやってするの?
そして、私はナビゲーションコントローラーを使用しません。
私のiPhoneアプリケーションには、2つのシーンがあり、どちらもビューコントローラーです。通常、最初のシーンは最初のシーンに設定されます。ユーザーがプレイすると、2番目のものに渡されます。
この時点で、ユーザーがアプリを閉じて再起動すると、ユーザーがすでにプレイしている場合は、2番目のシーンから開始する必要があるため、そのユーザーの最初のシーンが変更されます。
これどうやってするの?
そして、私はナビゲーションコントローラーを使用しません。
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ソリューションを使用することにした場合は、プロジェクトからストーリーボードを削除し、ここでも削除します。