如何使用storyboard

时间:2016-05-11 05:36:07

标签: ios uiviewcontroller swift2

我想设置一个身份验证过程,首先将用户定向到一个登录屏幕,在那里他们可以输入他们的凭据,并且只有在成功通过身份验证后才会被定向到主页。

根据在线发现的教程(http://sapandiwakar.in/programatically-set-the-initial-view-controller-using-storyboards/),我了解到我可以使用代理人这样做。但是我不知道

  • 我的 application:didFinishLaunchingWithOptions:方法
  • 如何实例化viewcontroller
  • 将其推送至navigationcontroller

我怎么知道怎么做?

3 个答案:

答案 0 :(得分:2)

如果我理解你的问题。如果他/她未登录,您希望将用户定向到登录视图。否则,您将指导他/她进入主视图。

您可以尝试这种方式:

  1. 添加视图控制器并将其设为“容器视图控制器”。
  2. 将此“容器视图控制器”设置为初始视图控制器,其中当用户打开应用程序时,这将是条目视图控制器。
  3. 在此视图控制器的viewDidLoad方法下,您必须检查用户是否已登录。
  4. 如果用户未登录,请在容器中加载登录视图,否则加载主视图。
  5. 以下是一个示例:

    ContainerViewController.m

    - (void)viewDidLoad
    {
        if(isUserLoggedIn)
        {
            [self loadMainView];  
        }
    
        else
        {
            [self loadLoginView];
        }
    }
    
    - (void)loadMainView
    {
        UIViewController mainViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainView"];
    
        [self addChildViewController:mainViewController];
        [self.view addSubview:mainViewController.view];
    
        [mainViewController didMoveToParentViewController:self];
        [mainViewController.view setFrame:self.view.bounds];
    }
    
    - (void)loadLoginView
    {
        UIViewController loginViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginView"];
    
        [self addChildViewController:loginViewController];
        [self.view addSubview:loginViewController.view];
    
        [loginViewController didMoveToParentViewController:self];
        [loginViewController.view setFrame:self.view.bounds];
    }
    

    注意:您不需要在容器和其他两个视图控制器之间设置segue。

    希望这会有所帮助。 :)

答案 1 :(得分:0)

选择你的故事板 - > open show attribute inspector - >在View Controller选项中Check on是初始viewController

enter image description here

答案 2 :(得分:0)

  

将您的登录屏幕设置为初始视图控制器,然后执行登录过程,如果使用以下代码成功导航应用程序到主屏幕,则留下相应的消息..

// you need to create UIStoryboard object by giving name of your storyboard
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
// here you need to create storyboard ID of perticular view where you need to navigate your app 
UIViewController *vc = [mainStoryboard instantiateViewControllerWithIdentifier:@"viewContIdentifire"];

// if use presentViewController this will not enables you to go back to previous view
[self presentViewController:vc animated:NO completion:nil];
                    **// OR**
// using pushViewController lets you to go back to the previous view
[self.navigationController pushViewController:vc animated:YES];

希望这会有所帮助..