2012-07-28 56 views
0

我想在我的类IDViewController中设置bigImage,cadImage和数字。但是,当我使用下面的代码时,这些从未设置。很显然,这些属性是合理合成的,并且正在我的故事板上的一个场景中。我在这里错过了什么吗?试图使用set设置属性

ViewController.m

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"leftMainSegue"]) 
    { 
     IDViewController *vc = [segue destinationViewController]; 

     [vc.bigImage setImage:[UIImage imageNamed:@"1.png"]]; 
     [vc.number setText:@"01"]; 

    } 
} 

IDViewController.h

@interface IDViewController : UIViewController 
{ 
    UIImageView *bigImage; 
    UIImageView *cadImage; 
    UILabel *number; 

} 
@property (nonatomic) UIImageView *bigImage; 
@property (nonatomic) UIImageView *cadImage; 
@property (nonatomic) UILabel *number; 

@end 

回答

1

即使IDViewController由时间prepareForSegue:被称为初始化,它可能没有加载的看法,因此不子您尝试更新的意见。

您最好将图像和文本设置为控制器直接拥有的属性,然后将它们设置为viewDidLoad:中的视图。

喜欢的东西....(警告不被编译器检查!)

在IDViewController.h:

@property (nonatomic, strong) UIImage *inputImage; 
@property (nonatomic, strong) NSString *inputString; 

在IDViewController.m:

@synthesize inputImage = _inputImage; 
@synthesize inputString = _inputString; 
... 
- (void)viewDidLoad { 
... 
    self.bigImage.image = self.inputImage; 
    self.number.text = self.inputString; 
... 
} 

在视图控制器。 m:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
... 
    vc.inputImage = [UIImage imageNamed:@"1.png"]; 
    vc.inputString = @"01"; 
... 
} 
+0

太棒了谢谢!你能否提供一个我将如何做的例子,我对此仍然陌生。 – ios85 2012-07-28 14:31:18

+0

我已经更新了答案。新的代码是在浏览器中编写的,所以可能有错误......但它至少应该给出一般的想法。 – 2012-07-28 14:47:28