通过视图传递数据Xcode 4.2故事板



我的项目基本上是一个性能汽车应用程序,使用arc4rand()来确定下一辆车将出现。我已经画了一张图来解释我需要它做什么。

my .h code

 @interface BMW : UIViewController {
  IBOutlet UIImageView *view;
  IBOutlet UILabel *label;
}
-(IBAction)random;
@end

my .m code

-(IBAction)random {
   int image = arc4random() % 1;
   switch (image) {
   case 0:
       block.image = [UIImage imageNamed:@"m3.jpg"];
       label.text = @"BMW m3" ;
       break;
   default:
       break;
  }

如何将标签和图片转移到第二个视图?我使用的是Xcode 4.2.1和storyboard

一种可能性:在第二个视图控制器中创建标签和图片变量,并像这样设置它们in newController.h

@interface newController : UIViewController 
@property (strong, nonatomic) NSString *labelText;
@property (strong, nonatomic) UILabel *label;
@property (strong, nonatomic) UIImage *image;
@end

in newController.m

@implementation newController 
@synthesize labelText, image, label;
- (void)viewWillAppear
{
   label.text = labelText;
}
@end

在IB/Xcode中设置segue的标识符为pushNewViewController,并在代码中添加prepareForSegue:

#import "NewController.h"
...
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    if ([segue.identifier isEqualToString:@"pushNewController"]) {
        [segue.destinationViewController setLabelText:label.text];
        [segue.destinationViewController setImage:block.image];
    }
}

如果你想了解更多关于UIViewControllers和故事板的知识,我建议你去看看斯坦福大学的CS 193P课程,它完全适用于iOS 5

最新更新