我正在使用此功能在Xcode 4.3中切换视图。
[self performSegueWithIdentifier:@"NextView" sender:self];
我想在页面之间传递一些参数。我怎么能这样做?
答案 0 :(得分:39)
performSegueWithIdentifier:sender:
年视图控制器将调用
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
假设您的新视图控制器有一些要设置的属性:
if ([[segue identifier] isEqualToString:@"NextView"]) {
MyViewController *myVC = [segue destinationViewController];
myVC.propertyToSet = // set your properties here
}
答案 1 :(得分:5)
这个问题对于在视图控制器之间传递数据有一个非常好的正确解释:
答案 2 :(得分:3)
以下是Pfitz的答案,但是我使用一个例子让那些刚接触Objective-C的人更容易理解:
在您的destinationViewController.h文件中,将变量的属性设置添加到'接收'来自source controller.m文件的值
@property (nonatomic) int billIdReceivingVote;
将destinationViewController.h导入sourceViewController.m文件:
// VOLViewController.m
#import "VOLVoteViewController.h
将prepareForSegue
方法添加到sourceViewController.m文件并传递变量
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
VOLVoteViewController *myDestinationViewController = [segue destinationViewController];
// myDestinationViewController.variable = sourceViewController variabe
myDestinationViewController.billIdReceivingVote = [self.idOfBillSelected intValue];
}