2013-07-31 73 views
0

我是iOS開發新手,希望得到一些指導。iOS更新對象的屬性

我有有我要定期更換一個屬性的ViewController:

@property (strong, nonatomic) IBOutlet UIImageView *image; 

現在在另一個類,我更新的財產,我第一次alloc和初始化然後視圖控制器相應地更新該屬性。但是,當我用另一個圖像替換該圖像時,它只會使用第一張圖像。但是如果我用alloc init實例化另一個ViewController,它一切正常。

所以我的問題是,通過創建我的ViewController的新實例更新的正確/最佳實踐方式 - 內存效率明智是最佳實踐?

謝謝。

+0

檢查viewcontroller是否存在if(viewController)viewController = nil;然後分配它。 – Girish

回答

0

這聽起來像你一定想改變圖像,而不是取代整個視圖控制器。

你可以顯示代碼,你正在改變圖像?此外,請註明您是否要在其內部更改圖片查看圖片。 (圖像視圖是在屏幕上顯示的實際圖像,爲了避免混淆,建議您將屬性名稱命名爲imageView)。

下面是兩個示例。我假設有一個變量'theViewController'持有引用你的視圖控制器。

更換圖像視圖:

// Create a new image view with a new image inside it 
theViewController.image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"img1"]]; 

更換圖像:

// Put a new image into the existing image view 
theViewController.image.image = [UIImage imageNamed:@"img1"]; 

最後一個例子說明了爲什麼屬性名imageView最好是到image:現在,它看起來像你改變'圖像上的圖像'。但實際上,您正在更改imageView上的圖像。