switchBackground
メソッドを呼び出すたびに、新しいmainView
オブジェクトが作成されます。変更が発生するのを見るには、既存のオブジェクトの背景を変更する必要があります。
あなたのコードから、switchBackground
の方法がどこにあるかは分かりません。 ViewController
?
それはビューコントローラに配置されている場合は、あなたがしなければならないすべては次のとおりです。あなたのコメントを1として
self.displayedImage.image = [UIImage imageNamed:@"image.png"];
EDIT
。
あなたがクラスBからクラスAのオブジェクトの画像を変更したいときは、2つの異なる方法でそれを行うことができます:オブジェクトへの参照を通じ
1.
これが設定され作成時に既存のMAINVIEW NSNotificationCenterを介してローカル通知を掲載することにより
@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へのポインタを取得します初期化子。あなたのViewControllerで今
-(IBAction)switchBackground:(id)sender {
[[NSNotificationCenter defaultCenter] postNotificationName: @"changeImage" object: [UIImage imageNamed:@"image.png"]];
}
は、通知に耳を傾け、それはSettings.m に位置し
- (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;
}
のViewControllerにinitメソッドで
を反応 私が試したViewController.displayImage.image = [UIImage imageNamed:@ "image.png"]; 「displayImage」は見つかりませんでした。私はViewControllerの画像を変更しようとしています(私のメインビュー - それは2ビュープログラムです)。 – MerryXmax
魔女のために別のクラスの画像を変更するには、参照がありません。既存のビューへの参照を持っているか、それを変更するにはNSLocalNotificationを使用する必要があります。私は私の言いたいことを示すために私を更新します。 – Cyprian
ありがとう!私はそれを楽しみにしています。 – MerryXmax