• ベストアンサー

iphone アプリの勉強をしていますが、文字の表示の仕方でいきずまっ

iphone アプリの勉強をしていますが、文字の表示の仕方でいきずまっています。OpenGLを使用しつつ文字列を表示したのですがどうしたらいいでしょうか? アドバイスお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

いろいろ方法がありますけど、Delegateに定義したIBOutletを、他のクラスからアクセス する方法が手っ取り早いでしょうか。 試しに、テンプレートのスクエアのY座標をリアルタイムに表示してみました。 1. メインのデリゲートで、アウトレットを定義しておいて、 @interface SampleAppDelegate : NSObject <UIApplicationDelegate> { IBOutlet UILabel* label_; } 2. 別のクラス(たとえばES1Renderer)で、メインのデリゲートへの参照を取得して SampleAppDelegate* appDelegate; appDelegate = (SampleAppDelegate *)[[UIApplication sharedApplication] delegate]; 3. ES1Rendererクラスの作画用メソッド(たとえばrender)で、ラベルに書き込む処理 appDelegate.label_.text = 「スクエアのY座標(GLFloat)をNSStringに変換して」

rara0193
質問者

お礼

回答していただきありがとうございます。 appDelegateのインスタンス変数へのアクセスなんとかできました。

rara0193
質問者

補足

回答していただきありがとうございます。 すみません。度々の質問になってしまうのですが、メインのデリゲートへの参照を取得する方法が少しわかりません。 Renderer1のインターフェイスのなかでSampleAppDelegate* appDelegateを宣言すると error: expected specifier-qualifier-list before"SampleAppDelegate"と出てしまいます。多分意味は、SampleAppDelegateにて宣言できないという内容だと思うのですが、 このエラーを回避するには、どうしたらいいでしょうか?

その他の回答 (2)

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.3

「SampleAppDelegate.h」を「import」していますか?

rara0193
質問者

補足

回答していただきありがとうございます。 すみません。度々の質問となってしまいますが。SampleAppDelegate.hをimportしたところ、appDelegateが宣言できました。本当にありがとうございます。ですがappDelegate.label_.textの内容を書き換える箇所にて error: accessing unknown 'label_' getter methodというエラーが発生してしまいます。 SampleAppDelegate.h内で@property (nonatomic,retain) IBOutlet UILabel* label_;とプロパティとして記述してみたところコンパイルは、通るのですがRender内からlabel_の内容を書き換えることができません。 度々の質問ですみませんが、このエラーの回避方法を教えてください。

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

こんにちは。 まずは普通にUILabelを配置して、文字列をセットするのが基本中の基本でしょうね。 XCodeのOpenGLのテンプレートにある、「MainWindow.xib」にUILabelを配置して、 IBOutlet経由で文字列をセットすればいいです。 label_.text = @"Hello, OpenGL"; みたいに。

rara0193
質問者

補足

早々の回答ありがとうございます。 私の質問に対しての補足ですが、MainWindow.xibにセットしたUILabelの内容をOpenGL内の処理をしている時に書き換える方法なども教えていただければ助かります。