4

{Xcode 4.4、デプロイ ターゲット iOS5.0、ストーリーボードではなく、ARC を使用}

私はiOSでOpenGLを調べてきました.多くのチュートリアルが示すように、GLKViewControllerとGLKViewをプログラムで作成するのに問題はありませんでした. インターフェイス ビルダーで GLKViewController ライブラリ オブジェクトを使用してみましたが、使用していないストーリーボードのセットアップ以外のチュートリアルや情報はまだ見つかりません。私自身の試みは 100% 機能していないので、誰かが私が間違っていることを教えてくれることを期待して、セットアップのスクリーンショットをここに示しています。明確にするために、私が参照しているインターフェイスビルダーでこのオブジェクトを使用しています:

GLKViewController ライブラリ オブジェクト

GLKViewController オブジェクトをライブラリから IB にドラッグしてセットアップし、IB に子 GLKView も配置します。デフォルトのビューを削除したので、次のようになります。

IB レイアウト

OpenGLVC2 クラス (GLKViewController) に GLKView アウトレット プロパティを作成し、アウトレットを次のように配線しました。

IBアウトレット

実際、最初は GLKViewController オブジェクトで自動的に配線されているため、ファイルの所有者にビュー アウトレットを配線していませんでしたが、「OpenGL2_iPhone nib をロードしましたが、ビュー アウトレットが設定されていませんでした」というエラーで終了します。また、ファイルの所有者デリゲートを GLKViewController オブジェクトに接続しましたが、「このクラスは、キー デリゲートのキー値コーディングに準拠していません」というエラーで終了します。IB の GLKViewController はカスタム クラス OpenGLVC2 に設定されているため、GLKViewController実行時に結合されるとファイルの所有者になると思いましたが、明らかに私はそれについて間違っています。

上記のスクリーンショットが示すように配線すると、セットアップは実際には画面に一度描画する限り機能しますが、レンダリングループが発生しません (つまり、更新メソッドが起動しません)、および shouldAutorotateToInterfaceOrientation: don' のような他のメソッドは取得しません火。私の OpenGL2VC クラスへの私の GLKView 委任は正常に機能しているようですが、私の GLKViewController はそうではありません。

GLKViewController と GLKView メソッドを同じ GLKViewController クラスに持つ IB nib アプローチは可能ですか? それが、私が行ったチュートリアルでプログラム的に行われた方法です (実際、最初のステップでは、すべてのコードが AppDelegate にありました)。何か問題がある場合に備えて、GLKViewController と GLKView の ID と属性インスペクターのスクリーンショットを次に示します。

ID および属性インスペクター

前もって感謝します。

4

1 に答える 1

0

あなたのペン先について私が奇妙だと思うのは、その中のGLKViewControllerオブジェクトです. 通常、ファイルの所有者はタイプGLKViewControllerであり、GLKView下にあるだけです。これは、下の私の画像で示されています。

ここに画像の説明を入力

コントローラの nib を作成するための私の通常のプロセスは、ビュー タイプの新しい nib ファイルを追加し、ファイルの所有者のクラスを、使用しているコントローラ クラスに設定することです。

GLKViewController注:のデリゲートを nib から self に明示的に設定することはできませんが、それはコードで行うことができます。

于 2013-02-19T06:01:41.673 に答える