gpt4 book ai didi

ios - 如何在 Interface Builder NIB 中使用 GLKView 设置 GLKViewController 库对象

转载 作者:可可西里 更新时间:2023-11-01 06:16:35 24 4
gpt4 key购买 nike

{Xcode 4.4,部署目标 iOS5.0,不是 Storyboard,使用 ARC}

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

GLKViewController Library Object

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

IB Layout

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

IB Outlets

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

所以按照上面的屏幕截图所示进行连接,设置实际上只在屏幕上绘制一次,但我没有得到渲染循环(即更新方法不触发),以及其他方法,如 shouldAutorotateToInterfaceOrientation : 不要开火。看来我对 OpenGL2VC 类的 GLKView 委托(delegate)工作正常,但我的 GLKViewController 却不行。

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

Identity and Attribute Inspectors

提前致谢。

最佳答案

我对您的 Nib 感到奇怪的是其中的 GLKViewController 对象。通常文件的所有者是 GLKViewController 类型,并且下面只有一个 GLKView。我的下图说明了这一点。

enter image description here

我为 Controller 创建 nib 的通常过程是添加一个新的 View 类型的 nib 文件,并将文件所有者的类设置为我正在使用的 Controller 类。

注意:我无法通过 nib 显式地将 GLKViewController 的委托(delegate)设置为自身,但这可以在代码中完成。

关于ios - 如何在 Interface Builder NIB 中使用 GLKView 设置 GLKViewController 库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859212/

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