GobanVC というビュー コントローラーがあります。拡大効果を行うためにサブビューを追加しています。それは問題なく動作しますが、removeSuperview を呼び出してそれを取り除くと、認識できないセレクタ エラーが発生します。
2010-08-26 10:10:04.014 GoGrinder[4257:207] -[GobanVC _invalidateSubviewCache]: unrecognized selector sent to instance 0x5a2f540
2010-08-26 10:10:04.016 GoGrinder[4257:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[GobanVC _invalidateSubviewCache]: unrecognized selector sent to instance 0x5a2f540'
GobanVC はビューではなく UIViewController のサブクラスであるため、このメッセージが表示される理由がわかりません。次のようにサブビューを追加しています。
if(magnifier == nil)
{
magnifier = [[MagnifierView alloc] initWithFrame:gobanView.bounds];
magnifier.viewref = gobanView;
[gobanView addSubview:magnifier];
}
gobanView は UIView IBOutlet です。
touchesEnded では、次のようにサブビューを削除しようとします。
if(magnifier != nil)
{
[magnifier removeFromSuperview];
[magnifier release];
magnifier = nil;
}
何か案は?UIView であるビューの親に _invalidateSubviewCache を送信する必要があるようです。代わりに VC が呼び出される理由がわかりません。
アップデート:
gobanVC.view は gobanView の親です。IB を使用して子ビューを追加しました。gobanView は接続先の IBOutlet です。