2012-07-24 76 views
0

我有一個在iOS 5中運行良好的應用程序,但是當我在iOS 4中嘗試時,出現EXC_BAD_ACCESS錯誤。我有一個是在AppDelegate中添加如下一個標籤欄:不能在iOS 4中從一個選項卡移動到另一個選項卡

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
self.window.backgroundColor = [UIColor whiteColor]; 
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault animated:NO]; 

UITabBarController *tabBarController=[[UITabBarController alloc] init]; 

searchTableViewController = [[SearchTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
UINavigationController *navControllerSearch=[[UINavigationController alloc] initWithRootViewController:searchTableViewController]; 

firstviewcontroller = [[FirstViewController alloc] initWithStyle:UITableViewStyleGrouped] ; 
UINavigationController *navFirstView=[[UINavigationController alloc] initWithRootViewController:firstviewcontroller]; 
[[FirstViewController tableView] setScrollEnabled:NO]; 

secondViewController = [[SecondViewController alloc] initWithStyle:UITableViewStyleGrouped]; 
UINavigationController *navsecondView=[[UINavigationController alloc] initWithRootViewController:secondViewController]; 
[[SecondViewController tableView] setScrollEnabled:NO]; 

[tabBarController setViewControllers:[NSArray arrayWithObjects:navFirstView, navSecondView, navControllerSearch, nil]]; 

[self.window setRootViewController:tabBarController]; 

當我嘗試從第一片移動到第二個應用程序崩潰。在iOS 5中,它運行良好。 iOS部署目標屬性是iOS 4.0。

如果我運行儀器,尋找殭屍,我能找到一個殭屍具有以下信息:

# Address Category Event Type RefCt Timestamp Size Responsible  Library Responsible Caller 
1 0x5a21880 CALayer Zombie -1 00:10.816.545 0 QuartzCore -[CALayerArray copyWithZone:] 


0 CoreFoundation ___forwarding___ 
1 CoreFoundation _CF_forwarding_prep_0 
2 CoreFoundation CFRetain 
3 CoreFoundation +[__NSArrayI __new::] 
4 QuartzCore -[CALayerArray copyWithZone:] 
5 CoreFoundation -[NSObject(NSObject) copy] 
6 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] 
7 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] 
8 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] 
9 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] 
10 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] 
11 UIKit -[UIView(Hierarchy) _makeSubtreePerformSelector:withObject:withObject:copySublayers:] 
12 UIKit -[UIView(Hierarchy) removeFromSuperview] 
13 UIKit -[UITransitionView _didCompleteTransition:] 
14 UIKit -[UITransitionView transition:fromView:toView:] 
15 UIKit -[UITransitionView transition:toView:] 
16 UIKit -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:] 
17 UIKit -[UITabBarController transitionFromViewController:toViewController:] 
18 UIKit -[UITabBarController _setSelectedViewController:] 
19 UIKit -[UITabBarController _tabBarItemClicked:] 

任何想法?

回答

0

您可能想要檢查第二個ViewController中的代碼,可能是在加載時崩潰了,看起來像在轉換完成後發生崩潰。 嘗試調試你viewWillApear或viewDidLoad。 其他標籤是否也崩潰?

+0

是的,其他Tabs也崩潰了。 viewWillAppear和viewDidLoad不會執行(在此之前崩潰) – Tony 2012-07-25 11:03:43

相關問題