美文网首页
iOS 常见的登录界面(不登录看不见登录中心界面)

iOS 常见的登录界面(不登录看不见登录中心界面)

作者: 其实你懂De | 来源:发表于2017-06-30 11:15 被阅读1250次

    好久不写了,今天给大家分享一下登录界面,经理说不登录不让进入个人中心,虽然不麻烦,但是感觉坑挺多(可能我是菜鸟的原因)。后台还没做出来,展示的只是本地数据,这些都不重要,主要的效果。。。废话不多说,先看下效果!

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

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

    相关文章

      网友评论

          本文标题:iOS 常见的登录界面(不登录看不见登录中心界面)

          本文链接:https://www.haomeiwen.com/subject/btpbcxtx.html