以前我实现弹出登录界面是在对应的controller中的viewwillappear里实现,这样做的缺点是,点击要弹出登录界面的tabbar里的contrllor时会先显示对应界面再弹出登录。需求希望在点击切换tabbar的item时就弹出登录,不进入对应界面。
实现代码如下:
需要实现tabbarController对应的代理方法,遵循代理UITabBarControllerDelegate!!!
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
int utype = [[MXKit shareMXKit]getUserInfo];
//判断用户是否登陆
if (utype== 1) {
//这里拿到你想要的tabBarItem,这里的方法有很多,还有通过tag值,这里看你的需要了
if ([viewController.tabBarItem.title isEqualToString:@"我的"]||[viewController.tabBarItem.title isEqualToString:@"朋友圈"]||[viewController.tabBarItem.title isEqualToString:@"交易发布"]||[viewController.tabBarItem.title isEqualToString:@"会议"]) {
MXRLCLoginViewController *vc = [MXRLCLoginViewController new];
[self.window.rootViewController presentViewController:vc animated:YES completion:nil];
//这里的NO是关键,如果是这个tabBarItem,就不要让他点击进去
return NO;
}
}
//当然其余的还是要点击进去的
return YES;
}