我有一個名爲GobanVC的視圖控制器。這是添加一個子視圖來做放大效果。這工作正常,但是當我打電話removeSuperview擺脫它,我得到一個無法識別的選擇錯誤:RemoveFromSuperview發送無法識別的選擇器到視圖控制器
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。