2013-07-31 75 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上的图像。