【问题标题】:Presenting a different storyboard upon launch在发布时呈现不同的故事板
【发布时间】:2014-02-01 15:08:45
【问题描述】:

我想根据某些条件向用户呈现不同的故事板场景(如果用户之前已登录,则显示欢迎场景;如果他们是新用户,则显示注册屏幕)。

用户之前是否登录将存储在 sqlite 中 - 但我应该在哪里检查这一点,以及如何基于此加载默认初始场景?

我看过在 AppDelegate 中执行 performSegue,但我不认为 segue 是正确的方法。

任何想法如何去做这个? 谢谢大家!

【问题讨论】:

    标签: objective-c xcode ios7


    【解决方案1】:

    您需要使用应用代理的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法。

    首先,您需要在此处包含逻辑以确定要加载的情节提要。一旦您确定要加载哪个故事板,就可以这样加载故事板:

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"YOUR_STORYBOARD" 
        bundle:nil];
    
    UIViewController *initialViewController = [storyBoard 
        instantiateInitialViewController];
    
    [self.window setRootViewController:initialViewController];
    

    【讨论】:

    • 啊,好吧,所以这是一个完全不同的故事板,而不是场景。
    • 您的问题是询问如何呈现不同的故事板。
    • 嘿,你是对的 - 我应该澄清一下,我不是 100% 确定这是通常的(推荐的)方法。
    【解决方案2】:

    嘿,这是你可以做的,从设置中删除主界面文件,然后使用以下代码。

    1. 第 1 步: 选择项目,然后选择常规设置。

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-16
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2013-04-08
      相关资源
      最近更新 更多