在视图控制器之间传递variables

我正在使用这个function来切换Xcode 4.3中的视图。

[self performSegueWithIdentifier:@"NextView" sender:self]; 

我想在页面之间传递一些参数。 我怎样才能做到这一点?

performSegueWithIdentifier:sender:您的视图控制器会打电话

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 

假设你的新视图控制器有一些属性来设置:

 if ([[segue identifier] isEqualToString:@"NextView"]) { MyViewController *myVC = [segue destinationViewController]; myVC.propertyToSet = // set your properties here } 

这个问题有一个非常好的和正确的解释在视图控制器之间传递数据:

在视图控制器之间传递数据

这是Pfitz的答案,但是我使用一个例子让那些对Objective-C不熟悉的人们更容易理解:

  1. 在您的destinationViewController.h文件中添加variables的属性设置,以便从源代码controller.m文件中“接收”值

     @property (nonatomic) int billIdReceivingVote; 
  2. 将您的destinationViewController.h导入到您的sourceViewController.m文件中:

     // VOLViewController.m #import "VOLVoteViewController.h 
  3. prepareForSegue方法添加到您的sourceViewController.m文件并传递variables

     - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { VOLVoteViewController *myDestinationViewController = [segue destinationViewController]; // myDestinationViewController.variable = sourceViewController variabe myDestinationViewController.billIdReceivingVote = [self.idOfBillSelected intValue]; }