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