4

{Xcode 4.4,部署目标 iOS5.0,不是情节提要,使用 ARC}

我一直在研究 iOS 中的 OpenGL,并且正如许多教程所示,以编程方式创建 GLKViewController 和 GLKView 没有问题。我想尝试在界面构建器中使用 GLKViewController 库对象,但除了我没有使用的情节提要设置之外,我还没有找到任何教程或信息。我自己的尝试没有 100% 有效,所以我在这里展示了我的设置截图,希望有人能告诉我我做错了什么。只是为了澄清,它在我指的界面生成器中使用这个对象:

GLKViewController 库对象

我通过将一个 GLKViewController 对象从库中拖到 IB 中来设置它,这也将一个子 GLKView 放在那里。我删除了默认视图,所以它看起来像这样:

IB布局

我在我的 OpenGLVC2 类(一个 GLKViewController)中创建了一个 GLKView 插座属性,我像这样连接插座:

IB奥特莱斯

实际上,起初我没有连接文件所有者中的视图出口,因为这已经在 GLKViewController 对象中自动完成,但是以错误“加载了 OpenGL2_iPhone 笔尖但未设置视图出口”而终止。我还将文件的所有者委托连接到 GLKViewController 对象,但以错误“此类不符合键委托的键值编码”而终止。我认为因为 IB 中的 GLKViewController 我设置为自定义类 OpenGLVC2,所以一旦它们在运行时缝合在一起,GLKViewController就是文件的所有者,但显然我错了。

因此,如上面的屏幕截图所示,设置实际上可以在屏幕上绘制一次,但我没有得到渲染循环(即更新方法不会触发),以及其他方法,如 shouldAutorotateToInterfaceOrientation: don'不开火。看来我的 OpenGL2VC 类的 GLKView 委托工作正常,但我的 GLKViewController 不是。

IB nib 方法是否可以在同一个 GLKViewController 类中拥有 GLKViewController 和 GLKView 方法?这就是我在教程中以编程方式完成的方式(事实上,第一步所有代码都在 AppDelegate 中)。这是我的 GLKViewController 和 GLKView 的身份和属性检查器的屏幕截图,以防出现问题:

身份和属性检查器

提前致谢。

4

1 回答 1

0

我觉得你的笔尖很奇怪的是GLKViewController它里面的物体。通常文件的所有者是 typeGLKViewController并且只有一个GLKView在下面。我的下图说明了这一点。

在此处输入图像描述

我为控制器创建 nib 的常用过程是添加视图类型的新 nib 文件,并将文件所有者的类设置为我正在使用的控制器类。

注意:我不能GLKViewController从笔尖显式地将 ' 委托设置为 self,但这可以在代码中完成。

于 2013-02-19T06:01:41.673 回答