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

时间:2011-12-29 07:42:32

标签: ios objective-c uistoryboard

我的项目基本上是一款高性能汽车应用程序,使用arc4rand()来确定接下来会显示哪辆车。 我已经做了picture来解释我需要它做什么。

我的.h代码

 @interface BMW : UIViewController {

  IBOutlet UIImageView *view;

  IBOutlet UILabel *label;

}

-(IBAction)random;

@end

我的.m代码

-(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和故事板

1 个答案:

答案 0 :(得分:1)

一种可能性:在第二个视图控制器中制作标签和图片,然后像这样设置它们 在newController.h

@interface newController : UIViewController 
@property (strong, nonatomic) NSString *labelText;
@property (strong, nonatomic) UILabel *label;
@property (strong, nonatomic) UIImage *image;
@end
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和故事板的更多信息,我建议您查看当前适用于iOS 5的Stanford CS 193P课程