美文网首页iOS 不一样的开发者文档
TabbarItem 点击需登陆需求

TabbarItem 点击需登陆需求

作者: 去你的联盟 | 来源:发表于2016-06-29 15:07 被阅读49次

    先说一下我的项目框架,tabbarcontroller控制4个导航控制器,4个导航控制器分别控制四个根视图,在这种前提下 ,我们的项目中很容易出现(我的)tabbaritem,点击需要登录才能进去,点击的时候需要判断需不需要登录,没有登录的情况下,肯定需要登录的,然后push出来登录界面,既然是push出来的界面点击左上角返回的时候最多只能返回到(我的界面),那么问题就来了 ,总不能一直在这里循环着不让用户去看其他页面吧,后来发现tabbarcontroller有代理方法

    - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
       
     
        //这里我判断的是当前点击的tabBarItem的标题
        if ([viewController.tabBarItem.title isEqualToString:@"我的"]) {
            //如果用户ID存在的话,说明已登陆
            if (是否登录的 判断) {
                            //跳到登录页面
                            LoginViewController *login = [[LoginViewController alloc] init];
                            //隐藏tabbar
                //            login.hidesBottomBarWhenPushed = YES;
                            [((UINavigationController *)tabBarController.selectedViewController) pushViewController:login animated:YES];
                            
                            return NO;
            }else{
              
                return YES;
            }
            
        }
        else
            return YES;
        
    }
    

    通过上面的方法完美解决了点击(我的)需要登录的问题,然后问题又来了,我的里面有设置按钮,在设置里面点击退出登录,用户又回到登录界面了,但是这个登录时(我的)界面push出来了,所以在点击左上角返回的时候又会出现问题,所以就在loginController里面的左上角返回按钮方法里添加

    - (void)popToHome{
        
        [self.tabBarController setSelectedIndex:0];
        [self.navigationController popViewControllerAnimated:NO];
    }
    

    这样点击返回的时候就可以返回首页,而且你在其它页面登录的时候,再回到(我的)界面就不会弹出需要登录界面的情况

    多一点细心,多一点记录,多一点成功

    相关文章

      网友评论

      • First灬DKS:多一点细心,多一点记录,多一点成功

      本文标题:TabbarItem 点击需登陆需求

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