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,所以干脆就放弃这种效果了。不懂的可以问问我

等待后台准备测试。希望对大家有所帮助。

上一篇下一篇

猜你喜欢

热点阅读