ViewController に画像ビューを追加するメソッドがあります。画像ビューは、ドラッグ可能になるようにサブクラス化されます。タッチすると、サブクラスは ViewController のメソッド (spawnImage) をトリガーして、新しい画像を生成します。ViewController の他の場所からこのメソッドを呼び出すと、画像は正しく描画されますが、呼び出しがサブクラスから行われた場合、メソッドが呼び出され、NSLog は機能しますが、画像は表示されません。
サブクラスでViewControllerの別のインスタンスを作成しているようで、実際に表示されているものではなく、そのインスタンスに画像を追加することになります。
どうすればこれを解決できますか?
UIImageView のサブクラス:
- (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
…
ViewController *viewController = [[ViewController alloc] init];
[viewController checkIfImageIsInOriginalPosition:selfCenter letterIndex: imgTag];
}
ViewController.m:
-(void)checkIfImageIsInOriginalPosition:selfCenter letterIndex: imgTag {
…
else {
[self spawnImage];
}
}
-(void)spawnImage {
…
NSLog(@"Received");
SubClass *subClass = [[SubClass alloc] initWithFrame:frame];
[subClass setImage:image];
[self.view addSubview:subClass];
}