在Tabbar内容ViewController之前添加登录视图

时间:2015-10-07 11:19:31

标签: ios objective-c swift

我有以下要求:

标签栏导航,包含2个“标签”,其中包含登录信息。因此,如果用户选项卡(例如)UITabBar ill的Button3获得全屏登录视图 - 但仅限于2个特定选项卡。

这是工作流程:

enter image description here

如果有活动会话(我正在使用登录会话管理) - 我将不会显示登录按钮 - 但如果没有,则应在全屏显示登录窗口。

因此,当现在在ViewDidLoad中的任何RootViewControllers中显示loginViewController时,rootViewControllers的“内容”仍会被加载。

点击一个按钮后我的意见很糟糕,没有为该标签加载RootViewController。

任何人都可以帮助我解决这些问题的最佳方法吗?

1 个答案:

答案 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;
}