UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录

如果在点击UITabbarItem(例如:“我的”)时,判断用户是否已经登录了,如果还没有登录,跳转至登录页面;如果登录了,直接跳转至带有uitabbarItem的页面。

在添加UITabbarItem的继承自UITabbarController的实现文件(.m文件)中,实现UITabbarControllerDelegate中的方法:- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController

具体实现,如下

- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
    //"我的"页面的tabbarItem的下标是2,
    //_privateToken == nil 为判断是否登录的条件
    if (viewController == tabBarController.viewControllers[2]  && _privateToken == nil) {
        
        LoginViewController *loginViewController = [LoginViewController new];
        UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:loginViewController];
        [((UINavigationController *)tabBarController.selectedViewController) presentViewController:nav animated:YES completion:nil];
        
        return NO;
    } else {
        return YES;
    }
}

在登录成功之后,实现如下方法,可实现跳回主界面

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
appDelegate.window.rootViewController = [MainViewController new];


你可能感兴趣的:(UITabbarController的UITabbarItem(例:"我的")点击时,判断是否登录)