2012-02-06 2 views
0

私は描画用ユーティリティアプリを持っています。xibのボタンを押すことに基づいてUIViewのUIImage変数を更新できません

xibには、UIImage変数を更新するボタンがあります。

- (IBAction)changeImage { 
    UIImage *drawImageVar = [UIImage imageNamed:@"line.png"]; 

この行はMainViewController.mファイルにあります。

drawImageVarを使用するコードは、それがシミュレータで実行したときに、私はすべてのエラーを得ることはありませんが、それは何もしません

- (void) drawRect:((CGRect)rect { 

の一部としてMainView.mです。 しかし... 私は.. 未使用の変数を言うMainViewController.mファイル内の黄色の警告を持っている「drawImageVar

私はそれはで世界的に見られていないことを想定し、それグローバル(シングルトン作るための他の提案を試みたが、 AppDelegateに変数を入れている)が、そうでないものはうまくいくようだ。

答えて

0

YOUr drawImageVarはローカル変数です。

+0

それをグローバルにすることが答えでした。しかし、ここで私がこのリンクで見つけた方法が働いています。データコンテナとアプリケーションデリゲートを使用します。チャームのように働いた! http://www.iphonedevsdk.com/forum/iphone-sdk-development/54859-sharing-data-between-view-controllers-other-objects.html –

1

Mr.Michael H.黄色の警告には、「未使用変数drawImageVar」と表示されています。これは、初期化/宣言の後で、コード内のどこでも変数「drawImageVar」を使用しなかったことを意味します。そのため、この変数をクラスに沿って使用する場合は、ヘッダー(.hファイル)にUIImageのオブジェクトを作成する必要がある場合は、ローカル宣言によるメソッド内部の変数を使用できます。あなたは何か考えていることを願っています。ありがとう。

0

は、あなたのヘッダファイルに追加します。

UIImage *drawImageVar; 

@property (nonatomic, retain) UIImage *drawImageVar; 

は、あなたの実装ファイルに追加します。

@synthesize drawImageVar; 

- (IBAction)changeImage { 
    drawImageVar = [UIImage imageNamed:@"line.png"]; 
    [drawImageVar setNeedsDisplay]; 

私はあなたがのdrawRectでdrawImageVarを使用していると仮定します。

+0

良いコードですが、これを試しましたが、mainviewcontroller.mボタンでdrawImageVarを変更することはできません。 zon7への私の返事を見てください。 –

+0

いいえ、私はそれがうまくいかなかった理由は、imageNamedが画像をキャッシュしていたためです。 [UIImage imageWithContentsOfFile:path]はうまくいきました。 – ader

関連する問題