如果想讓一個APP加上引導頁面是一個非常完美的舉動
但是,總會遇到一些問題
(不要忘記在APDelegate裏面加上用戶引導頁面的頭文件和程序啓動時的第一個頁面哦)
情況一:純代碼
判斷是否是第一次啓動應用程序
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]] ;
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstLaunch"])
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstLaunch"];
NSLog(@"第一次啓動");
//如果是第一次啓動的話,使用UserGuideViewController (用戶引導頁面) 作爲根視圖
UserGuideViewController *userGuideViewController = [[UserGuideViewController alloc] init];
self.window.rootViewController = userGuideViewController;
}
else
{
NSLog(@"不是第一次啓動");
TranslateController *tranVC = [[TranslateController alloc] init];
self.window.rootViewController = tranVC;
}
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
情況二:使用storyboard
情況基本相同,不同的是
NSLog(@"不是第一次啓動");
UIStoryboard *story = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
UIViewController * vc = [story instantiateViewControllerWithIdentifier:@"TranslateController"];
self.window.rootViewController = vc;
解釋一下原理先,如果使用純代碼的話,不是第一次啓動應用程序的時候會自動執行下面的代碼,所以不會有問題如果使用storyboard的話,初始化第一個視圖控制器(程序第一個界面),什麼都沒有,(除非你自己使用代碼添加控件),而且storyboard在啓動的時候並不是從這裏開始的,而是默認storyboard的第一個視圖控制器,所以,加上一個標誌就好
這樣它就能找到應該啓動的界面