iOS 开发中点击tabBar模态登录界面

在开发中,我们常常会遇到,当用户未登录的时候,点击某个tabbarItem提示用户来登录,如果用户取消,还会停留在之前的界面.
这里我们用到UITabBarController的代理一个方法

遵循代理 : 
self(tabBarController控制器本身).delegate = self;
//代理方法,这个方法是来判断当点击某个tabBarItem时是否要点击下去,
其实你可以这样理解:就是是否要点击这个tabBarItem.
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController{
    //判断用户是否登陆
    if (isLogin == NO) {
         //这里拿到你想要的tabBarItem,这里的方法有很多,还有通过tag值,这里看你的需要了
        if ([viewController.tabBarItem.title isEqualToString:@"消息"] || [viewController.tabBarItem.title isEqualToString:@"订单"]) {
           LoginController *vc = [LoginController new];
           [self presentViewController:vc animated:YES completion:nil];
           //这里的NO是关键,如果是这个tabBarItem,就不要让他点击进去
           return NO;
       }
    }
    //当然其余的还是要点击进去的
    return YES;
}


你可能感兴趣的:(iOS 开发中点击tabBar模态登录界面)