tabBarController的代理方法


//这个tabBarController的代理方法,在返回值是NO的时候,代表还没有跳转到点击的这个控制器,那么可以在这之前做一些操作,例如:淘宝的点击“我的淘宝”,可以跳转登录界面
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController NS_AVAILABLE_IOS(3_0)
{
    //    NSLog(@"%ld == %@ == %@",tabBarController.selectedIndex,tabBarController,viewController);
    
    if ([viewController.tabBarItem.title isEqualToString:@"我的"])
    {
        UIStoryboard *story = [UIStoryboard storyboardWithName:@"SDLogin" bundle:nil];
        SDLoginViewController *loginvc = [story instantiateInitialViewController];
        //设置代理
        loginvc.delegate = self;
        
        SDNavigationController *nav = [[SDNavigationController alloc]initWithRootViewController:loginvc];
        [self presentViewController:nav animated:YES completion:nil];
        
        return NO;
    }
    
    return YES;
}

//在上面登录成功后,来跳转到你点击的这个控制器,只需要用代理告诉这个tabBarController就可以了
self.selectedViewController = self.myView; //假如 myView 就是你点击的那个控制器,这样就回在登录成功后,自动跳转到这个控制器



你可能感兴趣的:(tabBarController的代理方法)