- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
{Xcode 4.4,部署目标 iOS5.0,不是 Storyboard,使用 ARC}
我一直在研究 iOS 中的 OpenGL,并且我在以编程方式创建 GLKViewController 和 GLKView 时没有遇到任何问题,正如许多教程所展示的那样。我想尝试在界面生成器中使用 GLKViewController 库对象,但我还没有找到任何教程或信息,除了我没有使用的 Storyboard设置。我自己的尝试并没有 100% 奏效,所以我在这里展示了我的设置截图,希望有人能告诉我我做错了什么。澄清一下,我指的是在界面生成器中使用这个对象:
我通过将一个 GLKViewController 对象从库中拖到 IB 中来设置它,这也将一个子 GLKView 放在那里。我删除了默认 View ,所以它看起来像这样:
我在我的 OpenGLVC2 类(一个 GLKViewController)中创建了一个 GLKView socket 属性,并且我像这样连接 socket :
实际上,一开始我没有连接文件所有者中的 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 身份和属性检查器的屏幕截图,以防出现问题:
提前致谢。
最佳答案
我对您的 Nib 感到奇怪的是其中的 GLKViewController
对象。通常文件的所有者是 GLKViewController
类型,并且下面只有一个 GLKView
。我的下图说明了这一点。
我为 Controller 创建 nib 的通常过程是添加一个新的 View 类型的 nib 文件,并将文件所有者的类设置为我正在使用的 Controller 类。
注意:我无法通过 nib 显式地将 GLKViewController
的委托(delegate)设置为自身,但这可以在代码中完成。
关于ios - 如何在 Interface Builder NIB 中使用 GLKView 设置 GLKViewController 库对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859212/
我是一名优秀的程序员,十分优秀!