{Xcode 4.4,部署目标 iOS5.0,不是情节提要,使用 ARC}
我一直在研究 iOS 中的 OpenGL,并且正如许多教程所示,以编程方式创建 GLKViewController 和 GLKView 没有问题。我想尝试在界面构建器中使用 GLKViewController 库对象,但除了我没有使用的情节提要设置之外,我还没有找到任何教程或信息。我自己的尝试没有 100% 有效,所以我在这里展示了我的设置截图,希望有人能告诉我我做错了什么。只是为了澄清,它在我指的界面生成器中使用这个对象:
我通过将一个 GLKViewController 对象从库中拖到 IB 中来设置它,这也将一个子 GLKView 放在那里。我删除了默认视图,所以它看起来像这样:
我在我的 OpenGLVC2 类(一个 GLKViewController)中创建了一个 GLKView 插座属性,我像这样连接插座:
实际上,起初我没有连接文件所有者中的视图出口,因为这已经在 GLKViewController 对象中自动完成,但是以错误“加载了 OpenGL2_iPhone 笔尖但未设置视图出口”而终止。我还将文件的所有者委托连接到 GLKViewController 对象,但以错误“此类不符合键委托的键值编码”而终止。我认为因为 IB 中的 GLKViewController 我设置为自定义类 OpenGLVC2,所以一旦它们在运行时缝合在一起,GLKViewController就是文件的所有者,但显然我错了。
因此,如上面的屏幕截图所示,设置实际上可以在屏幕上绘制一次,但我没有得到渲染循环(即更新方法不会触发),以及其他方法,如 shouldAutorotateToInterfaceOrientation: don'不开火。看来我的 OpenGL2VC 类的 GLKView 委托工作正常,但我的 GLKViewController 不是。
IB nib 方法是否可以在同一个 GLKViewController 类中拥有 GLKViewController 和 GLKView 方法?这就是我在教程中以编程方式完成的方式(事实上,第一步所有代码都在 AppDelegate 中)。这是我的 GLKViewController 和 GLKView 的身份和属性检查器的屏幕截图,以防出现问题:
提前致谢。