在显示选项卡栏控制器之前启动登录视图

abu*_*ose 7 tabs controller storyboard ios5

我有一个使用故事板开发的ios5应用程序,当前在初始启动时显示标签栏控制器视图.我想在显示标签栏控制器之前显示登录屏幕.用户将输入他的用户名和密码,然后系统将对用户进行身份验证,然后如果成功,则显示标签栏控制器.

我已经尝试了以下3个选项但没有运气..任何想法?

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    // Option 1
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    PointsViewController *firstVC = [[tabBarController viewControllers] objectAtIndex:0];
    UIViewController *loginViewController = [[LoginViewController alloc] init];
    [firstVC.navigationController pushViewController:loginViewController animated:YES];

    // Option 2
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    UIViewController *loginViewController = [[LoginViewController alloc] init];
    [tabBarController presentViewController:loginViewController animated:NO completion:nil];  

    // Option 3
    UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
    UIViewController *loginViewController = [[LoginViewController alloc] init];
    [tabBarController presentModalViewController:loginViewController animated:NO];

    return YES;
}
Run Code Online (Sandbox Code Playgroud)

abu*_*ose 18

最后想出来了......这是你需要做的:

  1. 向故事板添加独立登录视图.

  2. 选择登录视图,然后在属性检查器中,选中"是否为初始视图控制器".这将把从标签控制器启动的初始视图切换到登录视图,从而解决了首先显示登录屏幕的整个问题.

  3. 在登录视图中添加一个按钮,并创建一个segue,以便在按下按钮时加载选项卡控制器.(或者,您可以从登录视图创建segue到选项卡控制器视图,并根据需要以编程方式调用segue).

  4. 选择登录视图,然后选择选项编辑器>嵌入>导航控制器

  5. 在导航控制器的属性检查器中,取消选中"显示导航栏"选项(这是一个整容更改;我假设您不需要在登录屏幕上显示导航栏!)

而已 :)