iPhone: ошибка «Неопознанный селектор отправлен в экземпляр» - PullRequest
2 голосов
/ 04 июня 2010

Я пытаюсь внедрить модальное частичное наложение в моем приложении с помощью кода из «Полумодальных (прозрачных) диалогов на iPhone» на ramin.firoozye.com. Функция наложения работает, и она отображает модальное изображение, но вызов любого IBAction из контроллера модального режима вызывает сбой «Неопознанный селектор, отправленный в экземпляр».

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

Я уверен, что мне здесь не хватает чего-то простого. Любая помощь будет принята с благодарностью.

1 Ответ

2 голосов
/ 04 июня 2010

При отображении вашего ModalViewController в TestViewController displayModal: вы отпускаете свой modalController (строка 20). Не делайте этого - вам нужен ViewController, чтобы остаться в живых. Если вы отпустите его, только представление останется живым (как оно сохраняется при добавлении в качестве подпредставления).

Кроме того, в ModalViewController hideModalEnded вы выпускаете modalView, который вы не сохранили, поэтому я бы тоже удалил его.

Так что теперь вам нужно освободить только экземпляр ModalViewController после удаления представления. Вы можете сделать это путем [самостоятельного выпуска]; в hideModalEnded, но это, кажется, необычный шаблон, и я не чувствую себя хорошо, делая это.

Некоторые предложения:

  • Сохраняйте методы отображения и скрытия в тот же класс.
  • Держите ивара рядом с контроллер.
  • Другая возможность: удалить ModalViewController в целом и положить все в TestViewController - но это очень зависит от того, сколько действий будет происходить в реальной жизни.
...