在Tab栏控制器之前显示一个login屏幕?

我正在devise一个iphone应用程序,它应该是显示login屏幕最初,之后,它应该显示标签栏控制器与5个选项卡。 能够启动login屏幕最初,但之后是无法显示标签栏控制器,请帮助我与源代码的家伙。 这里是我的代码:这是一个基于视图的应用程序

application.M

-(void)applicationDidFinishLaunching:(UIApplication *)application { // Override point for customization after app launch [window addSubview:viewController.view]; [window addSubview:tabBarController. view]; [window makeKeyAndVisible]; LoginView *loginView=[[LoginView alloc]initWithNibName:@"LoginView" bundle:nil]; [window addSubview:loginView.view]; } 

通过这样做,标签栏控制器最初显示在login屏幕的底部,并且也无法在标签栏项目之间切换。

你可以做的是以下几点。

启动Tabbar作为主屏幕,然后在视图加载或显示之前显示login屏幕并在成功login后closureslogin屏幕。

编辑:对于代码示例看由Maulik提供的代码

尝试执行以下操作:

[window makeKeyAndVisible];
LoginView * loginView = [[LoginView alloc] initWithNibName:@“LoginView”bundle:nil];
[window addSubview:loginView.view];

您将首先显示login。 login完成后,您应该向您的应用程序委托发送消息,以便他可以在您的login视图和tabBarController之间切换:

 -(void)loginFinished{ window.rootViewController=tabBarController; } 

我build议你:

1 – 为你的LoginViewController和UITabBarViewController提供IBOutlets,所以你可以很容易地使用它们。

2-使用通知,以便您的应用程序委托知道何时切换控制器。

假设你有通过子类TabBarController类。

在“login”视图完成作业后,您也可以推送标签栏控制器。

在Login.m文件中

 - (void) doLogin { if(login) { TabBarController *aTabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil]; [self.navigationController pushViewController:aTabBarController animated:YES]; [aTabBarController release]; } }