2012-02-06 38 views
0

我有一個用於繪圖的實用程序應用程序。基於xib中的按鈕無法更新UIView中的UIImage變量

在xib中有一個按鈕,當按下時應該更新UIImage變量。

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

該行位於MainViewController.m文件中。

使用該drawImageVar的代碼是在MainView.m爲一體的

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

當在模擬器中運行,我沒有得到任何錯誤的一部分,但它不會做任何事情。 但是... 我在MainViewController.m文件,上面寫着一個黃色的警告.. 未使用的變量「drawImageVar

我認爲它沒有被通過全局可見,並試圖爲使其全球其他建議(單,把變量放在AppDelegate中),但這似乎沒有工作。

有什麼建議?

回答

0

您的drawImageVar是一個局部變量。你必須使它全局或使用全局變量,而不是

+0

讓全球化成爲答案。但是,這裏是我在這個鏈接中找到的方法。它涉及使用數據容器和應用程序委託。像魅力一樣工作! http://www.iphonedevsdk.com/forum/iphone-sdk-development/54859-sharing-data-between-view-controllers-other-objects.html – 2012-02-06 19:48:49

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的回覆。 – 2012-02-06 19:52:51

+0

好的,作爲參考,我認爲它沒有工作的原因是imageNamed緩存圖像。 [UIImage imageWithContentsOfFile:path]可能工作得很好。 – ader 2012-02-07 10:01:38