有人发布了一个类似的问题,没有解决方案,但也没有示例代码。所以,我想我会在这里详细发布我的问题。删除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