我想根据某些条件向用户呈现不同的故事板场景(如果用户先前已登录,则显示欢迎场景;如果他们是新用户,则显示注册屏幕)。
用户之前是否已登录将存储在sqlite中 - 但我应该在哪里检查,以及如何基于此加载默认的初始场景?
我看过在AppDelegate中执行performSegue,但我不认为segue是正确的方法。
任何想法如何去做这个? 谢谢大家!
答案 0 :(得分:2)
您需要使用app delegate的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法。
首先,您需要在此处包含逻辑以确定要加载的故事板。一旦您确定要加载哪个故事板,故事板就可以这样加载:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD"
bundle:nil];
UIViewController *initialViewController = [storyBoard
instantiateInitialViewController];
[self.window setRootViewController:initialViewController];
答案 1 :(得分:-1)
嘿,这是你可以做的,从设置中删除主界面文件,然后使用以下代码。
2.第2步
根据您的条件使用以下代码。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
self.window=[[UIWindow alloc] init];
[self.window setFrame:[UIScreen mainScreen].bounds];
if(signedIn){
//Create Account Storyboard
UIStoryboard *board=[UIStoryboard storyboardWithName:@"A" bundle:nil];
[self.window setRootViewController:[board instantiateInitialViewController]];
}else{
//Signup StoryBoard
UIStoryboard *board=[UIStoryboard storyboardWithName:@"B" bundle:nil];
[self.window setRootViewController:[board instantiateInitialViewController]];
}
[self.window makeKeyAndVisible];
return YES;
}