以前我实现弹出登录界面是在对应的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;
}
本文介绍了一种在iOS应用中优化登录流程的方法,通过在UITabBarControllerDelegate中重写shouldSelectViewController方法,实现在切换TabBar项时即时弹出登录界面,避免用户看到未授权页面。此方案适用于需在进入特定Tab前验证用户登录状态的应用场景。
1720

被折叠的 条评论
为什么被折叠?



