gpt4 book ai didi

iphone - cocos2d 和 UINavigationController 的麻烦

转载 作者:可可西里 更新时间:2023-11-01 04:37:00 25 4
gpt4 key购买 nike

我正在开发一个应用程序,我想在该应用程序的主屏幕中使用 cocos2d,但在其他地方不使用(在其他地方,标准 UIKit 内容更合适)。因此,我将我的 EAGLView 设置为 UINavigationController 中的 Root View ,当用户点击正确的位置时,我将一个新的 View Controller 推送到导航 Controller 上。

到目前为止,效果很好。主视图中的 cocos2d/chipmunk 东西运行良好,插入新的 View Controller 按预期工作。

但是当我返回主视图时,那里什么也没有。我只看到窗口背景和导航栏。

我在 Root View Controller 的 -viewDidAppear: 中设置了一个断点,以查看弹出之后发生了什么,到目前为止一切看起来都很正常(或者至少与推送之前相同)。

推送只是沼泽标准导航 Controller 推送。我没有看到任何类型的内存警告。有人知道发生了什么吗?

http://cl.ly/1Q050s0h2k47032K1Y1N 有一个简单的演示项目展示了这种行为

这是基于cocos2d+chipmunk的项目模板。点击 Grossini,一个新的 View Controller 被插入堆栈。点击后退按钮,Grossini 就消失了。

有趣的是,这个问题只存在于 iOS 设备上(我运行的是 4.1),而不存在于模拟器中。

最佳答案

我已经解决了你的问题。您必须遵循代码中的一些步骤。

在 RootViewController nib 文件中,将 View 标识从 HomeView 更改为 UIView。

在 RootViewController 类中创建一个主视图对象

@interface RootViewController : UIViewController {
HomeView *homeViewObj;
}

在 RootViewController.m 文件的 ViewDidLoad 方法中添加这段代码

homeViewObj = [[HomeView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[self.view addSubview:homeViewObj];

并在您的 ViewDidLoad 方法中的所需位置替换此代码。

CCDirector *director = [CCDirector sharedDirector];

// attach the openglView to the director
[director setOpenGLView:(EAGLView *)homeViewObj];

[director setDeviceOrientation:kCCDeviceOrientationPortrait];
[director setAnimationInterval:1.0/60];
[director setDisplayFPS:YES];

那么问题就解决了,祝一切顺利。

问候,

萨提亚

关于iphone - cocos2d 和 UINavigationController 的麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4446863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com