RemoveFromSuperview отправляет нераспознанный селектор на просмотр контроллера - PullRequest
1 голос
/ 26 августа 2010

У меня есть контроллер вида 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 представляет собой IBOutlet UIView.

В штрихах Закруглил я пытаюсь удалить подпредставление вот так:

if(magnifier != nil)
{
    [magnifier removeFromSuperview];
    [magnifier release];
    magnifier = nil;
}

Есть идеи? Кажется, что _invalidateSubviewCache должен быть отправлен к родительскому представлению, которое является UIView. Я не понимаю, почему вместо этого звонят ВК.

Обновление:

gobanVC.view является родителем gobanView. Я добавил дочернее представление с помощью IB, и gobanView - это IBOutlet, к которому он подключен.

1 Ответ

0 голосов
/ 26 августа 2010

Довольно интересно.Я предполагаю GobanVC.view == gobanView?Кажется, что что-то запутанное происходит за кулисами, и, возможно, потребуется некоторое тонкое расчесывание, чтобы выяснить, как лупа может получить ссылку на GobanVC.Может быть, gobanView на самом деле содержит ссылку на gobanVC?

Я не знаю, сколько кода вы хотите показать здесь, но, если можете, покажите как можно больше .m, чтобы остальныемы можем взглянуть.Есть некоторые неинтуитивные проблемы с синхронизацией при загрузке представления UIViewController, поэтому наличие всего кода, который нужно посмотреть, очень помогает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...