需求描述:
故事板(StoryBoard)中,ViewController1与ViewController2有一条segue连线。点击ViewController1中的按钮跳转至ViewController2,并且从ViewController1中传递值给ViewController2。
实现:
ViewController1.m
在点击按钮时进行视图跳转。
_res = @"YES";
[self performSegueWithIdentifier:@"gameover" sender:sender];
添加下面的事件方法,该方法在视图跳转时被触发。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([segue.identifier isEqualToString:@"gameover"]) //"gameover"是segue连线的标识
{
id theSegue = segue.destinationViewController;
[theSegue setValue:_res forKey:@"result"];
}
}
@"gameover"是segue的identifier,_res是要传的值,为NSString类型,传递的形参取名为result。
ViewController2.h
定义一个属性来接受segue传递过来的值:
@property(nonatomic,weak)NSString *result;
ViewController2.m
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"接收到的值为: %@",self.result);
if ([self.result isEqualToString:@"YES"]) {
self.res.text = @"你赢了";
self.res.textColor = [UIColor greenColor];
}
// Do any additional setup after loading the view.
}
可以输出传递的值,若传的值为@"YES",则输出"你赢了"。