使用内置的prepareForSegue方法
首先新建两个类PrepareViewController以及ReceiveViewController。新建两个场景,建立关联(SendValue)。在第一个场景中添加按钮,并建立关联,添加驱动事件(goAction)。将左边的场景类型设置为prepare,右边的设置为receive(点击属性检查器左边的identity检查器)。在receive头文件中声明两个变量
#import <UIKit/UIKit.h>
@interface ReceiveViewController :UIViewController
@property (strong,nonatomic)NSString *name;
@property (assign,nonatomic)int age;
@end
在m文件中输出结果
#import "ReceiveViewController.h"
@interfaceReceiveViewController ()
@end
@implementation ReceiveViewController
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
NSLog(@"name is %@,age is %d",_name,_age);
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
当然,还得在prepare中设置原始的值,是通过prepareForSegue方法实现的
#import "PrepareViewController.h"
#import "ReceiveViewController.h"
@interfacePrepareViewController ()
@end
@implementation PrepareViewController
- (IBAction)goAction:(id)sender {
[selfperformSegueWithIdentifier:@"SendValue"sender:self];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifierisEqualToString:@"SendValue"]){
ReceiveViewController *receive=segue.destinationViewController;
receive.name=@"wangtuntun";
receive.age=23;
}
}
- (void)viewDidLoad {
[superviewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[superdidReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}