我有一个名为 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;
}
有任何想法吗?似乎 _invalidateSubviewCache 应该被发送到视图的父级,这是一个 UIView。我不明白为什么要调用 VC。
更新:
gobanVC.view 是 gobanView 的父级。我使用 IB 添加了一个子视图,而 gobanView 是它所连接的 IBOutlet。