Question

Je suis en train de mettre en œuvre un modal de recouvrement partiel dans mon application avec le code de « semi-Modal (transparent) Dialogs sur l'iPhone » à ramin.firoozye.com. Les travaux de la fonctionnalité de superposition et il glisse le modal en vue, mais d'appeler une IBAction du contrôleur du modal provoque un accident « non reconnu Selector envoyé à l'instance ».

I recréé la fonctionnalité de base avec ce code isolé, et il déclenche la même erreur. Pour voir ce dont je parle, vous pouvez télécharger le projet de test .

Je suis sûr que je manque juste simple quelque chose. Toute aide serait grandement appréciée.

Était-ce utile?

La solution

la présentation de vos ModalViewController dans TestViewController displayModal :, vous relâchez votre modalController (ligne 20). Ne pas faire cela - vous avez besoin du ViewController pour rester en vie. Si vous relâchez, seule la vue maintient en vie (comme il est retenu lorsqu'il est ajouté en tant que sous-vue).

En outre, dans ModalViewController vous hideModalEnded relâchez modalView, que vous n'avez pas retenu, donc je supprimer celui-là aussi.

Alors maintenant, vous devez libérer juste l'instance de ModalViewController après la vue se est retiré. Vous pouvez le faire par [version auto]; en hideModalEnded, mais cela semble être un schéma inhabituel et je ne me sens pas bien le faire.

Quelques suggestions:

  • Gardez les méthodes d'exposition et se cacher dans les même classe.
  • Gardez un Ivar autour de la contrôleur.
  • Une autre possibilité: Retirez le ModalViewController tout à fait et mettre tout en TestViewController - Mais cela dépend beaucoup de la façon dont l'action, il y aura beaucoup se passer dans la vraie chose.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top