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

时间:2012-01-27 03:12:42

标签: ios5 tabs controller storyboard

我有一个使用故事板开发的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;
}

4 个答案:

答案 0 :(得分:18)

最后想出了这个..这就是你需要做的事情:

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

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

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

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

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

  6. 就是这样:))

答案 1 :(得分:2)

答案 2 :(得分:0)

您可以使用模态视图。您可以检查用户是否已登录。如果没有,则可以使用模态视图来获取登录信息。您可以在故事板中创建UIViewController,然后使用instantiateViewControllerWithIdentifier:方法从故事板创建登录屏幕。然后简单地以模态显示它。

答案 3 :(得分:0)

我刚才遇到了这个问题,我通过添加以下代码完全解决了这个问题,你也没有使用过。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    ...
    [self.window makeKeyAndVisible];
}
相关问题