【问题标题】:How to programmatically set which screen load first by story board如何通过故事板以编程方式设置首先加载哪个屏幕
【发布时间】:2014-04-23 05:09:01
【问题描述】:

我正在开发一个具有登录屏幕的应用程序。它在用户默认值中记录用户是否登录。如果他没有登录,我想将用户引导到登录页面,否则导航到应用程序主屏幕。如何使用故事板以编程方式执行此操作。

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"loggedin"]) {

    //If logged in

} else {

   //if logged out

}

【问题讨论】:

    标签: ios navigation storyboard


    【解决方案1】:

    在您的 appdelegate 中编写此代码。并且不要忘记为您的视图控制器提供标识符名称

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
        {
            self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
    
            UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    
            UIViewController *viewController = // determine the initial view controller here and instantiate it with [storyboard instantiateViewControllerWithIdentifier:<storyboard id>];
    
            self.window.rootViewController = viewController;
            [self.window makeKeyAndVisible];
    
            return YES;
        }
    

    【讨论】:

    • 谢谢,它对我有用。但是点击登录按钮后发生错误。 “找不到用于 segue 'Login' 的导航控制器。推送 segues 只能在源控制器由实例管理时使用”有人可以帮助解决这个问题。
    • 您的视图控制器在导航控制器中吗?
    • 是的。我如何设置导航控制器
    • 在您的 Storyboard 中,您可以通过选择 View Controller 然后从顶部的菜单中选择 Editor->Embed In->Navigation Controller 来将 ViewController 嵌入到 Navigation Controller 中。
    【解决方案2】:

    为什么不总是以“正在加载”视图启动应用。 LoadingViewController 检查用户是否登录,然后转换到正确的视图控制器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 2012-01-03
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 2012-02-04
      相关资源
      最近更新 更多