iOS5 设备上的黑色 TabBar

发布于 2024-12-11 04:54:00 字数 700 浏览 0 评论 0原文

如果我在 iOS5 下运行我的应用程序,一切似乎都很好。但是,如果我尝试加载带有 TabBar 的视图和其中的一些视图。

屏幕看起来实际上如下图所示,因此黑色选项卡栏和应该在屏幕上的选项卡栏的第一个子视图被释放。我假设视图和选项卡栏之间的绑定不存在。

所以我认为这与我如何将视图与标签栏链接起来有关。

它的工作原理是这样的:

NSMutableArray* controllersForHome = [[self.tabBarController.viewControllers mutableCopy] autorelease];
[controllersForHome insertObject:somveViewController atIndex:[controllersForHome count]];
[self.tabBarController setViewControllers:controllersForHome];
[someViewController release];

我读过在索引 >0 处插入对象应该会有帮助,但不幸的是在我的情况下没有。还是同样的问题。

有人猜测并可以给我提示如何解决这个问题吗?

谢谢,

Andreas

黑色 TabBar 和自动释放的子视图

if I run my app under iOS5 all seems to be fine. But if I try to load a view with a TabBar and some views in it.

The screen looks actually like the picture below, so a black tabbar and the first subview of the tabbar which should be onscreen is deallocated. I assume, that the binding between the view and the tabbar does not exist.

So I think it has something to do how I link the views with the tabbar.

It works like that:

NSMutableArray* controllersForHome = [[self.tabBarController.viewControllers mutableCopy] autorelease];
[controllersForHome insertObject:somveViewController atIndex:[controllersForHome count]];
[self.tabBarController setViewControllers:controllersForHome];
[someViewController release];

I've read that inserting the object at an index >0 should be helpful, but unfortunately not in my case. Still the same issue.

Has somebody a guess and can give me a hint how to solve that problem?

Thanks,

Andreas

Black TabBar and automatically released subview

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春风十里 2024-12-18 04:54:00

这就是我在 iOS 5 中解决问题的方法:

不要使用这个:

SMutableArray* controllersForHome = [[self.tabBarController.viewControllers mutableCopy] autorelease];

[controllersForHome insertObject:someViewController atIndex:[controllersForHome count]];

[self.tabBarController setViewControllers:controllersForHome];
[someViewController release];

你应该使用这个:

self.tabBarController.viewControllers = [[NSArray arrayWithArray:self.tabBarController.viewControllers] arrayByAddingObject:someViewController];

this is how I solved the problem in iOS 5:

Instead of using this:

SMutableArray* controllersForHome = [[self.tabBarController.viewControllers mutableCopy] autorelease];

[controllersForHome insertObject:someViewController atIndex:[controllersForHome count]];

[self.tabBarController setViewControllers:controllersForHome];
[someViewController release];

You should use this:

self.tabBarController.viewControllers = [[NSArray arrayWithArray:self.tabBarController.viewControllers] arrayByAddingObject:someViewController];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文