dポイントプレゼントキャンペーン実施中!

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

A 回答 (3件)

いろいろ方法がありますけど、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に変換して」
「iphone アプリの勉強をしていますが」の回答画像2

この回答への補足

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

補足日時:2010/08/21 20:11
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/08/25 03:03

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

この回答への補足

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

補足日時:2010/08/22 05:30
    • good
    • 0

こんにちは。


まずは普通にUILabelを配置して、文字列をセットするのが基本中の基本でしょうね。

XCodeのOpenGLのテンプレートにある、「MainWindow.xib」にUILabelを配置して、
IBOutlet経由で文字列をセットすればいいです。

label_.text = @"Hello, OpenGL";
みたいに。
「iphone アプリの勉強をしていますが」の回答画像1

この回答への補足

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

補足日時:2010/08/21 12:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!