在两个视图之间共享图像

时间:2009-12-05 06:59:46

标签: iphone cocoa-touch

我正在努力学习开发体面的iPhone应用程序的基本和非常重要的东西。但我不太了解我没有得到什么。这是问题:

我有一个窗口项目,有2个视图 - View1,View2。在每个视图(通过IB)我删除了一个imageView控件。当我在view1中调用一个函数时,我想设置View2的图像控件(显示图像)。

我该怎么做?

必须有一个简单的方法,但我没有管理(并且经常搜索)找到一种简单易懂的方法,或者至少理解这个概念。

提前致谢。 -Me

2 个答案:

答案 0 :(得分:1)

您不一定需要分享图片。它大吗?你在下载吗?换句话说,它真的需要共享吗?

如果是,您可以在应用程序委托中实例化UIImage,并在创建它们时将其传递给每个视图控制器。为图像的每个视图控制器设置属性。像这样:

ViewController1 *controller1 = [[ViewController1 alloc init];
[controller1 setImage:image];
[[self navigationController] pushViewController:controller1];
[controller1 release];

ViewController2 *controller2 = [[ViewController2 alloc init];
[controller2 setImage:image];
[[self navigationController] pushViewController:controller2];
[controller2 release];

然后在每个视图控制器的viewDidLoad中,您可以为imageView的图像设置

- (void)viewDidLoad;
{
    [super viewDidLoad];
    [[self imageView] setImage:[self image]];
}

我不确定你是如何加载视图控制器的,但上面的代码假设你正在使用导航控制器堆栈。如果您需要澄清不同的方法,请告诉我。

答案 1 :(得分:0)

您应该将IB中的UIImageViews连接到ViewController类中的出口。在班级的.h界面文件中,根据需要添加:

IBOutlet UIImageView *view1;

添加一个属性:

@property (nonatomic,retain) IBOutlet UIImageView *view1;

并在您的类实现文件(.m)中,合成属性:

@synthesize view1;

最后,您需要将IB中的UIImageView对象连接到新的插座。然后,您可以使用view1.image

访问班级中UIView的图像属性