子视图怎么操作父视图的显示

来源:互联网 发布:java编码设置 编辑:程序博客网 时间:2024/04/29 06:34

主要要实现的是:我在程序启动的时候主视图加载了一幅图片,然后我打开子视图,在里面选择另外一幅图片,然后想让主视图显示我在子视图中选择的图片该怎么操作啊?

方法1.

你在AppDelegate.h文件加入这句
@interface ………… {
    UIImage* image;
}
@property (nonatomic, retain) UIImage* image;

在AppDelegate.m文件加入这句
@synthesize image;
- (void)applicationDidFinishLaunching:(UIApplication *)application {    
UIImage* image1=从你的resource中提取路径进行赋值。
self.image=image1;
}

然后在父页面的.m文件中调用
-(void)viewWillAppear:(BOOL)animated{
    AppDelegate* appDelegate=[[UIApplication sharedApplication] delegate];
           self.UIImageView.image=appDelegate.image;
}
然后在子页面中选择图片save噶event中同样写入
UIImage* image1=你所选的图片的路径进行赋值。
AppDelegate* appDelegate=[[UIApplication sharedApplication] delegate];
appDelegate.image=image1;

思路就是由于AppDelegate在程序一开始运行后,里面的东西都不会消失的,直到程序关闭,除非你主动去release他们。
所以就把图片保存在appDelegate,那么所有的view都可以访问,viewWillAppear这个方法就是每次这个view要present到用户面前的时候就会去delegate那里提取image一次
当你在子视图选完图片就对delegate的图片重新赋值,父页面的view每次要显示出来的时候就从delegate那里从新读取图片来显示。

方法2.

主视图声明一个UIImage的属性,然后在子视图声明一个initWithImage(UIImage *)image;方法,将主视图的UIImage属性作为参数传递到子视图中进行修改

方法3.

iPhone中NSNotificationCenter消息通信机制实在是好使,下面就介绍一下这个东西的用法,我对NSNotificationCenter消息通信机制的了解不多,在这儿只是介绍它的用法,抛砖引玉而已.
作用:NSNotificationCenter是专门供程序中不同类间的消息通信而设置的