添加了addChildViewController的storyboard中定义的GLKViewController不会更新

时间:2012-02-04 21:24:18

标签: opengl-es ios5 glkit

我在故事板中使用标识符定义了GLKViewController。我用

将它添加到代码中的另一个视图控制器
sceneController = (SceneController*)[[self storyboard] instantiateViewControllerWithIdentifier:@"openglcontroller"];
sceneController.view.frame = CGRectMake(0, 120, 320, 360);
[self addChildViewController:sceneController];

我在GLKViewController的viewDidLoad中定义了

context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
GLKView *v = (GLKView *)self.view;
v.delegate = self;
v.context = context;
[EAGLContext setCurrentContext:context];

我验证了这个viewDidLoad被调用,并且所有内容都应该存在。但是 - (void)glkView:(GLKView *)视图drawInRect:(CGRect)rect没有被调用,也没有 - (void)更新

GLKViewController没有暂停,其fps设置为30.为什么不调用委托方法?我在以前的应用程序中完成了这个作为根视图控制器当然工作。子视图控制器是iOS 5中的一项新功能,没有任何文档说明这不起作用。我错过了什么?

答案:

缺少什么(如果有其他人有此问题)。

[self addChildViewController:sceneController];
[[self view] addSubview:[sceneController view]]; <<<<<<<<<<<<<<<<
[sceneController didMoveToParentViewController:self];

由于GLKViewController中嵌入了一个视图,您需要将其添加为子视图,否则它不会出现在任何地方。 d&#39;!哦

0 个答案:

没有答案