2012-07-28 55 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