StoryBoard中使用segue传值
需求描述:
故事板(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",则输出"你赢了"。