有人發佈了一個類似的問題,沒有解決方案,但也沒有示例代碼。所以,我想我會在這裏詳細發佈我的問題。刪除UITabBarController
我有幾種遊戲模式的遊戲,每個模式都有幾個選項。在玩過各種設計之後,將它們放入帶有三個選項卡的UITabBarController似乎最爲清晰,每種類型的遊戲都有一個選項卡。我創建其從主菜單屏幕加載(更換主屏幕),並初始化的UITabBarController如下新的UIViewController:
barController = [[UITabBarController alloc] init];
Games1 *vc1 = [[[Games1 alloc] initWithNibName:@"Games1" bundle:nil] autorelease];
Games2 *vc2 = [[[Games2 alloc] initWithNibName:@"Games2" bundle:nil] autorelease];
Games3 *vc3 = [[[Games3 alloc] initWithNibName:@"Games3" bundle:nil] autorelease];
NSArray* controllers = [NSArray arrayWithObjects:vc3, vc1, vc2, nil];
barController.viewControllers = controllers;
[self.view addSubview:barController.view];
當用戶選擇一個遊戲,我從窗口和釋放作爲除去的UIViewController如下:
- (void)dealloc {
printf("Games released: barController: %d\n", [barController retainCount]);
[barController.view removeFromSuperview];
barController.viewControllers = 0;
[barController release];
barController = 0;
[super dealloc];
}
我的問題是,當我旋轉設備,我得到一個崩潰。如果我直接從主屏幕啓動遊戲模式並旋轉,則不會崩潰。我已經驗證了所有內容都已被釋放,並且我在條形控制器上的保留數爲1.有關如何消除此崩潰的任何建議?謝謝!
[編輯]多一點信息:
的barController被定義爲:
IBOutlet UITabBarController *barController;
有:
@property (nonatomic, retain) IBOutlet UITabBarController *barController;
感謝您的建議。我放了這條線來嘗試解決問題;刪除它並沒有什麼區別。 – 2010-02-12 06:49:56