我正在开发一个包含登录页面的应用程序。第一页应该是登录页面(带有视图控制器)。一旦用户登录,我将显示另一个视图,我需要显示一个标签栏,当用户注销时,必须显示相同的登录屏幕。我怎样才能做到这一点?
答案 0 :(得分:2)
您在TabbarController
课程中创建了AppDelegete
。当用户成功登录后,您就会将Appdelegete
TabbarController
设置为您窗口的RootViewController
。
AppDelegate *appDelegate = (AppDelegate *) [[UIApplication sharedApplication] delegate];
[appDelegate.window setRootViewController:appDelegate.tabBarController];
答案 1 :(得分:1)
我已完成此类项目,但我已根据要求制作了自定义tabbar。登录后用户必须转到个人资料页面,然后我使用第二个方法,但在检查用户是否已通过此第一种方法登录之前 -
if([AppHelper userDefaultsForKey:@"user_id"].length>0)
{
[[AppDelegate getAppdelegate] createTabBar];
}
那么你应该这样 -
-(void)createTabBar
{
self.tabBarController=[[RXCustomTabBar alloc] init];
self.tabBarController.customizableViewControllers = nil;
Home *homeObj = [[Home alloc] initWithNibName:@"Home" bundle:nil];
UINavigationController *tab1Controller = [[UINavigationController alloc] initWithRootViewController:homeObj];
ChatList *chatListObj = [[ChatList alloc] initWithNibName:@"ChatList" bundle:nil];
UINavigationController *tab2Controller = [[UINavigationController alloc] initWithRootViewController:chatListObj];
Settings *settingObj = [[Settings alloc] initWithNibName:@"Settings" bundle:nil];
UINavigationController *tab3Controller = [[UINavigationController alloc] initWithRootViewController:settingObj];
self.tabBarController.viewControllers = [NSArray arrayWithObjects: tab1Controller, tab2Controller,tab3Controller, nil];
self.tabBarController.selectedIndex=0;
self.tabBarController.delegate = self;
[self.tabBarController selectTab:0];
self.window.backgroundColor=[UIColor clearColor];
self.tabBarController.view.backgroundColor=[UIColor clearColor];
[self.window addSubview: self.tabBarController.view];
}
在此之后如果你有任何问题,我会在这里。希望这会有所帮助。
答案 2 :(得分:0)
我会通过模态视图显示登录屏幕。在这种情况下,您可以在界面构建器中为第一个视图实现标签栏。