在视图控制器之间传递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不熟悉的人们更容易理解:
-
在您的destinationViewController.h文件中添加variables的属性设置,以便从源代码controller.m文件中“接收”值
@property (nonatomic) int billIdReceivingVote;
-
将您的destinationViewController.h导入到您的sourceViewController.m文件中:
// VOLViewController.m #import "VOLVoteViewController.h
-
将
prepareForSegue
方法添加到您的sourceViewController.m文件并传递variables- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { VOLVoteViewController *myDestinationViewController = [segue destinationViewController]; // myDestinationViewController.variable = sourceViewController variabe myDestinationViewController.billIdReceivingVote = [self.idOfBillSelected intValue]; }