iOS 常见的登录界面(不登录看不见登录中心界面)
2017-06-30 本文已影响1250人
其实你懂De
好久不写了,今天给大家分享一下登录界面,经理说不登录不让进入个人中心,虽然不麻烦,但是感觉坑挺多(可能我是菜鸟的原因)。后台还没做出来,展示的只是本地数据,这些都不重要,主要的效果。。。废话不多说,先看下效果!
5.gif就是这种效果,可能我是个菜鸟,所以碰到比较坑的东西,不多说,上代码!
我们想到达这个效果,首先判断用户是否登录来拦截点击tabBarItem
//这是UITabBarController的代理方法<UITabBarControllerDelegate>
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
if (viewController == [tabBarController.viewControllers objectAtIndex:4]) {
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults objectForKey:@"phoneNum"] == nil) {
JYJ_LoginViewController *login = [[JYJ_LoginViewController alloc]init];
//隐藏tabBar
login.hidesBottomBarWhenPushed = YES;
self.tabBar.hidden = YES;
[(UINavigationController *)tabBarController.selectedViewController pushViewController:login animated:YES];
self.hidesBottomBarWhenPushed = NO;
return NO;
}else {
return YES;
}
}else {
return YES;
}
}
当我写到点击登录直接要跳转个人中心的时候碰到坑了,怎么回事呢?我们继续
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:self.passwordTextField.text forKey:@"phoneNum"];
[userDefaults setObject:self.passwordTextField.text forKey:@"password"];
[userDefaults synchronize];
MainTabBarController *tab = (MainTabBarController *)[UIApplication sharedApplication].keyWindow.rootViewController;
[JYJ_AlertView createHUDLabelText:@"登录成功" showView:[UIApplication sharedApplication].keyWindow alertType:0];
//跳到指定的页面
tab.selectedIndex = 4;
确实这么写也是跳到了指定页面!但是.....新的坑再洗出现 ,看一下效果。
6.gif很明显大家也看出来怎么回事了,就是说登录页面还会在你选择的VC出现一次,这怎么办呢?想了很长时间终于破解了!!
在我们点击登录的时候最后一句话是这样的
//跳到指定的页面
tab.selectedIndex = 4;
在这句话后面再加一段代码
[self removeFromParentViewController]; //我的理解是这样的,在进入指定VC后,把父类的VC移除了,所以他不会出现在你选择VC的视图中了。(后加)调试中还是发现了bug,所以干脆就放弃这种效果了。不懂的可以问问我
等待后台准备测试。希望对大家有所帮助。