iOS开发 两个场景间传递数据

原理:UIViewController中的- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender方法,会在场景切换前被调用,在该方法中设置指定的属性作为传递到下一个场景的参数,在下一场景中,通过presentingViewController属性,可以得到切换到该场景的前一个场景的实例,然后再读取前面设置的属性,实现数据的传送。
假设ViewController传送到SecondViewController:
下面的代码段都略去了无关代码。
ViewController.h,添加属性:


@property (strong,nonatomic) NSString *string;

ViewController.m:


@synthesize string;

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//设置属性 
   string=@"asdfasfd";
    [super prepareForSegue:segue sender:sender];
}

SecondViewController.h:


//因为要引用ViewController实例,所以必须导入ViewController.h
#import "ViewController.h"

SecondViewController.m:


 ViewController *viewController=(ViewController *)self.presentingViewController;
//读取
  NSString *string=viewController.string;

© 2012, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记