我正在设计一个应该首先显示登录屏幕的iphone应用程序,之后它应该显示带有5个选项卡的标签栏控制器。 我最初能够启动登录界面,但在此之后无法显示标签栏控制器,请帮我解决源代码问题。 这是我的代码: 这是一个基于视图的应用程序
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];
}
通过这样做,标签栏控制器最初显示在登录屏幕的底部。并且也无法在标签栏项目之间切换。
答案 0 :(得分:3)
您可以做的是以下内容。
启动Tabbar作为主屏幕,然后在加载或显示视图之前显示登录屏幕并在成功登录后关闭登录屏幕。
编辑:有关代码示例,请查看Maulik提供的代码
答案 1 :(得分:1)
尝试执行以下操作:
[window makeKeyAndVisible];
LoginView * loginView = [[LoginView alloc] initWithNibName:@“LoginView”包:nil];
[窗口 addSubview:loginView.view];
您需要先显示登录信息。登录完成后,您应该向您的应用代表发送消息,以便他可以在您的登录视图和tabBarController之间切换:
-(void)loginFinished{
window.rootViewController=tabBarController;
}
我建议你:
1 - 为您的LoginViewController和UITabBarViewController提供IBOutlets,这样您就可以轻松使用它们。
2-使用通知,因此您的应用代表知道何时切换控制器。
答案 2 :(得分:0)
假设您通过子类TabBarController
进行UITabBarController
课程。
您也可以在“登录”视图完成其工作后推动标签栏控制器。
在Login.m文件中
- (void) doLogin
{
if(login)
{
TabBarController *aTabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil];
[self.navigationController pushViewController:aTabBarController animated:YES];
[aTabBarController release];
}
}