我正在设计一个应该首先显示登录屏幕的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];
}
查看controller.M
- (void)viewDidLoad
{ LoginView *loginView=[[LoginView alloc]initWithNibName:@"LoginView" bundle:nil];
[self.view addSubview:loginView.view];
[super viewDidLoad];
}
我做错了,登录屏幕后无法显示标签蝙蝠控制器。 当应用程序启动时,我可以在登录屏幕的最底部看到标签栏控制器。如何避免?????帮我代码 并且在点击登录按钮后,如何解除loginview以及如何加载标签栏控制器???
答案 0 :(得分:4)
为什么不设置窗口添加UITabBarController,然后在需要登录时显示登录视图作为模态视图控制器。
-(void)applicationDidFinishLaunching:(UIApplication *)application
{
// Override point for customization after app launch
[window addSubview:tabBarController. view];
[window makeKeyAndVisible];
LoginView *loginView=[[LoginView alloc]initWithNibName:@"LoginView" bundle:nil];
[tabBarController.view presentModelViewcontroller: loginView animated:YES];
}
答案 1 :(得分:3)
请勿在此处添加标签栏
-(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];
}
登录完成后,您应该在LoginView中添加标签栏。例如
在Login.m文件中
- (void) doLogin
{
if(login)
{
TabBarController *aTabBarController = [[TabBarController alloc] initWithNibName:@"TabBarController" bundle:nil];
[self.navigationController pushViewController:aTabBarController animated:YES]; OR
[self.view addSubView: aTabBarController.view];
[aTabBarController release];
}
}
答案 2 :(得分:2)
您可以考虑使用其他方法来实现登录屏幕。您应该在应用程序委托中的主视图上显示选项卡栏控制器,并在应用程序委托中设置BOOL值以跟踪用户是否已登录。如果该值为false,则将登录屏幕显示为使用标签栏控制器中的presentModalViewController:
的新视图控制器。
在iPhone应用程序中,标签栏成为应用程序的索引,它应始终显示在主视图中。并将登录屏幕视为仅为登出的人显示的门。
答案 3 :(得分:2)
执行以下步骤 -
在登录视图控制器中创建一个登录按钮。
- (IBAction为)loginButtonPressed:(ID)发送方 { SampleViewController * sampleVC = [[SampleViewController alloc] initWithNibName:@“SampleViewController”bundle:nil]; [self presentModalViewController:sampleVC animated:YES]; }