您每次撥打switchBackground
方法時都會創建一個新的mainView
對象。您必須更改現有對象的背景才能看到發生的變化。
從您的代碼很難說哪裏有switchBackground
方法。 ViewController
?
如果它位於視圖控制器,那麼所有你需要做的是:
self.displayedImage.image = [UIImage imageNamed:@"image.png"];
編輯
根據您的評論。
當你想改變類B類A的對象的圖像,你可以做兩種不同的方式:
1.通過參照對象
這是設置初始化其上創建獲取指針到現有MAINVIEW
@property(nonatomic,assign)ViewController *mainView;
- (id)initWithMainViewController:(ViewController*)vc {
self = [super init];
if (self) {
self.mainView = vc;
}
return self;
}
-(IBAction)switchBackground:(id)sender {
mainView.displayedImage.image = [UIImage imageNamed:@"image.png"];
}
2.通過NSNotificationCenter發佈本地通知。
-(IBAction)switchBackground:(id)sender {
[[NSNotificationCenter defaultCenter] postNotificationName: @"changeImage" object: [UIImage imageNamed:@"image.png"]];
}
現在,在您的ViewController聽通知,並在init方法反應
在視圖控制器
- (id)initWithMainViewController:(ViewController*)vc {
self = [super init];
if (self) {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeImage:) name:@"changeImage" object:nil];
}
return self;
}
-(void)changeImage:(NSNotification*)notification{
self.displayedImage.image = (UIImage*) notification.object;
}
它位於Settings.m 我試過ViewController.displayImage.image = [UIImage imageNamed:@「image.png」];但它不會找到「displayImage」。我試圖改變ViewController的形象(我的主視圖 - 這是一個雙視圖程序)。 – MerryXmax 2011-12-31 19:49:57
爲了改變另一個班級的形象女巫你沒有一個參考是不可能的。您必須具有對現有視圖的引用或使用NSLocalNotification來更改它。我會更新我的內容來展示我的意思。 – Cyprian 2011-12-31 19:54:33
謝謝!我對此很期待。 – MerryXmax 2011-12-31 20:02:41