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

解决方法

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

>将独立登录视图添加到故事板.
>选择登录视图,然后在属性检查器中,选中“是否为初始视图控制器”.这将把从标签控制器启动的初始视图切换到登录视图,从而解决了首先显示登录屏幕的整个问题.
>在登录视图中添加一个按钮,并创建一个segue,以便在按下按钮时加载选项卡控制器. (或者,您可以从登录视图创建segue到选项卡控制器视图,并根据需要以编程方式调用segue).
>选择登录视图,然后选择选项编辑器>嵌入>导航控制器
>在导航控制器的属性检查器中,取消选中“显示导航栏”选项(这是一个整容更改;我假设您不需要在登录屏幕上显示导航栏!)

而已 :)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...