アプリが起動したときに初めてツアーを表示したい。
間違いなく私はいくつかを使用しますNSUserDefaults
。しかし、私は使用storyboards
していて、ロードするのとは別のロードをしたいと思っていviewControllers
ます。
if(firstTime)
Load TourController
else
Load mainScreen
どうすればこれを実装できappdelegate
ますか?
アプリが起動したときに初めてツアーを表示したい。
間違いなく私はいくつかを使用しますNSUserDefaults
。しかし、私は使用storyboards
していて、ロードするのとは別のロードをしたいと思っていviewControllers
ます。
if(firstTime)
Load TourController
else
Load mainScreen
どうすればこれを実装できappdelegate
ますか?
アプリの最初の起動時の動作は異なりますが、アプリデリゲートには実装していません。デリゲートのコードを使用して、起動数を追跡しました。次に、メインのビューコントローラをビューツリーの一番上に配置する必要があるため、そこから最初の起動動作をモーダルにプッシュしました。
- (void)applicationDidBecomeActive:(UIApplication *)application {
// the following forces new behaviour on 1st launch.
int launches;
launches = [[NSUserDefaults standardUserDefaults] integerForKey:LAUNCH_NUMBER_KEY];
// note: uninitialised user default returns 0.
if (!launches) {
// view did load will check again and push the first load tour.
// by returning here, the launch value is not incremented.
[self.viewController viewDidLoad];
return;
}
}
次に、でMainViewController viewDidLoad
、値を再度確認し、firstLoadビューをモーダルにプッシュします。
- (void)viewDidLoad {
//... more code here.
BOOL disclaimerAccepted = [[NSUserDefaults standardUserDefaults] boolForKey:DISCLAIMER_ACCEPT_KEY];
if (!disclaimerAccepted) {
[self showFirstLoadView];
return;
}
}
と
-(void) showDisclaimerView {
// Display the nav controller modally.
FirstLoadVC *firstLoadVC = [[FirstLoadVC alloc] initWithNibName:@"firstload" bundle:[NSBundle mainBundle]];
[firstLoadVC autorelease];
UINavigationController* firstLoadNavController = [[UINavigationController alloc]initWithRootViewController:firstLoadVC];
[self presentModalViewController:firstLoadNavController animated:YES];
[firstLoadNavController release];
}
if (firstTime) {
self.window.rootViewController = self.fisrtController;
} else {
self.window.rootViewController = self.mainController;
}