2009-12-05 79 views
0

我想要学习一些基本的和非常重要的开发体面的iPhone应用程序。但是我不知道自己没有得到什么。这里的问题:在两个视图之间共享图像

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

我该怎么做?

必须有一个简单的方法,但我没有管理(和做搜索了很多)找到一个简单的简单的方法来做到这一点,或至少理解这个概念。

在此先感谢。 -ME

回答

1

类中访问的UIView的图像属性你不一定需要共享图像。它大吗?你在下载它吗?换句话说,它真的需要共享吗?

如果是这样,你可以实例化的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]]; 
} 

我不知道你怎么是一个加载你的视图控制器,但上面的代码假设您正在使用导航控制器堆栈。如果你需要澄清另一种方法,请告诉我。

+0

图像保存在本地,基本上保存在一个视图中,我展示了一个视图,然后在第二个视图中展开以获得更好的视觉效果。谢谢你的回答我的问题 - 关键在于委托(我不想为此创建一个单例) – amok 2009-12-07 01:46:08

0

你应该在IB的UIImageViews的连接插座在你的ViewController类。在你的类的.h接口文件,添加适当的:

IBOutlet UIImageView *view1; 

添加属性:

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

,并在你的类实现文件(.M),合成属性:

@synthesize view1; 

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

+0

我的问题不是我如何从一个viewcontroller(VC)在UIViewImage访问。这是我如何从一个VC访问另一个对象,如位于其他VC中的ImageView。你所描述的是如何连接我已经知道的控制。 – amok 2009-12-05 15:48:41