0%

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;