我的应用上有一个非常奇怪的错误。该应用程序有两个选项卡。选项卡二显示报告列表。如果我点击选项卡二中的某个报告,该应用程序会正确显示报告的详细信息。然后我点击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;
}
答案 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;
}