首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除UITabBarController

删除UITabBarController
EN

Stack Overflow用户
提问于 2010-02-12 14:37:16
回答 2查看 1.8K关注 0票数 0

有人发布了一个类似的问题,但没有解决方案,也没有示例代码。所以,我想我应该在这里详细介绍一下我的问题。

我有一个有几种游戏模式的游戏,每种模式都有几个选项。在尝试了各种设计之后,将它们放入一个有三个选项卡的UITabBarController中似乎是最干净的,每个选项卡对应一个游戏类别。我创建了一个新的UIVIewController,它是从主菜单屏幕加载的(替换主屏幕),并按如下方式初始化UITabBarController:

代码语言:javascript
复制
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并释放,如下所示:

代码语言:javascript
复制
- (void)dealloc {
    printf("Games released: barController: %d\n", [barController retainCount]);
    [barController.view removeFromSuperview];
    barController.viewControllers = 0;
    [barController release];
    barController = 0;
    [super dealloc];
}

我遇到的问题是,当我旋转设备时,我会崩溃。如果我直接从主屏幕启动游戏模式并旋转,就不会崩溃。我已经验证了所有东西都被释放了,并且我在bar控制器上的保留计数是1。有什么建议可以消除这个崩溃吗?谢谢!

编辑更多信息:

barController定义为:

代码语言:javascript
复制
IBOutlet UITabBarController *barController;

通过以下方式:

代码语言:javascript
复制
@property (nonatomic, retain) IBOutlet UITabBarController *barController;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-16 12:41:25

最终,问题只是与UITabBarController有些微妙的关联。我直接在我的应用程序窗口中添加和删除UIViewControllers,这已经被证明在其他地方造成了问题。添加一个主UIViewController / UIView并只添加和删除它可以修复所有问题,尽管自动释放而不是释放可能也是有效的。请参阅此处的讨论:

View Controller being sent a message even though it has been deallocated

UITabBarController只是导致问题发生得更快、更明显。

票数 1
EN

Stack Overflow用户

发布于 2010-02-12 14:44:13

不要这样做:

代码语言:javascript
复制
barController.viewControllers = 0;

在-dealloc中,您只需将UITabBarController的视图从其superview中移除并释放它即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2250076

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档