7

我使用 GLKit 启动了 Xcode 模板,但我的意图是有一个窗口显示视图的 OpenGL 部分和用于控件的 UIKit。

GLKViewController 带有一个 GLKView。我去了 IB 并删除了 GLKView 并添加了一个 UIView,将一个新的 GLKView 放在我想要的大小的顶部。然后我修复了对 GLKView (self.view) 的引用并将较小的 GLKView 的委托设置为视图控制器。

我有

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[GLKViewController loadView] loaded the "2-view-9XZ-07-hga" nib but didn't get a GLKView.'

然后我查看了文档,发现 GLKViewController 需要 GLKView 作为它的视图。没有惊喜。是的,我对此很陌生。

将 GLKit 与小于全屏的 GLKView 一起使用的好方法是什么?还是混合 UIKit 和 GLKit 还没有完成?

(更新:很多人都在发现这个问题;邓肯的回答,使用视图控制器包含,效果很好。)

4

1 回答 1

8

你可以,但 GLKit 并没有明确说明如何。

问题在于 GLKViewController 的设计使其内容视图是 GLKView,正如您所说。

你有两个选择。

  1. 创建一个 GLKView 并将其放入常规视图控制器中。这很好用。

  2. 使用 iOS 5 中新的父/子视图控制器支持创建一个以 GLKView 作为其内容的 GLKViewController,并使其成为另一个视图控制器的子视图。

于 2012-04-19T22:29:56.787 回答