我有以下要求:
标签栏导航,包含2个“标签”,其中包含登录信息。因此,如果用户选项卡(例如)UITabBar ill的Button3获得全屏登录视图 - 但仅限于2个特定选项卡。
这是工作流程:
如果有活动会话(我正在使用登录会话管理) - 我将不会显示登录按钮 - 但如果没有,则应在全屏显示登录窗口。
因此,当现在在ViewDidLoad中的任何RootViewControllers中显示loginViewController时,rootViewControllers的“内容”仍会被加载。
点击一个按钮后我的意见很糟糕,没有为该标签加载RootViewController。
任何人都可以帮助我解决这些问题的最佳方法吗?
答案 0 :(得分:0)
您可以使用 - (BOOL)tabBarController:shouldSelectViewController:UITabBarDelegate的方法来处理选项卡选择并显示登录视图,而不是在需要时激活选项卡。
您可能需要存储回调(即阻止),您可以使用tabBar.selectedIndex = index手动激活制表符。
-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController
{
NSInteger index = [_tabBarController.viewControllers indexOfObject:viewController];
if (index==4)
{
if (_authorized)
{
return YES;
}
else
{
[self authorize];
__weak UITabBarController *tabBarController = _tabBarController;
_authorizationCallback = ^(){
//
tabBarController.selectedIndex = 4;
};
return NO;
}
}
return YES;
}