需求描述:

故事板(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",则输出"你赢了"。