点击TabBar崩溃App

时间:2015-02-25 20:40:15

标签: tabbar

我的应用上有一个非常奇怪的错误。该应用程序有两个选项卡。选项卡二显示报告列表。如果我点击选项卡二中的某个报告,该应用程序会正确显示报告的详细信息。然后我点击Tab one并立即点击Tab 2。该应用程序在iOS 8中崩溃,但适用于iOS 7。

如果我在点击Tab 1之前返回到Tab 2的根视图控制器,再次点击Tab 2不会使应用程序崩溃。知道什么可能导致这个错误?

在AppDelegate类中,我有以下代码:

- (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController
{
    UIViewController *currentController = tabBarController.selectedViewController;
    if ([currentController isKindOfClass:[UINavigationController class]])
        [(UINavigationController *)currentController popToRootViewControllerAnimated:NO];

    return YES;
}

1 个答案:

答案 0 :(得分:0)

我通过在代码上放置if语句解决了崩溃,如下所示。仍然不确定为什么代码在iOS 8中崩溃。

- (BOOL)tabBarController:(UITabBarController *)tabBarController
shouldSelectViewController:(UIViewController *)viewController
{

    #define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

    if (SYSTEM_VERSION_LESS_THAN(@"8.0"))
    {
        NSLog(@"The iOS is less than 8");

        UIViewController *currentController = tabBarController.selectedViewController;
        if ([currentController isKindOfClass:[UINavigationController class]])
            [(UINavigationController *)currentController popToRootViewControllerAnimated:NO];

        return YES;
    }


    return YES;

}