質問

Ramin.firoozye.comの「iPhoneのセミモーダル(透過)ダイアログ」のコードを使用して、アプリに部分的なオーバーレイモーダルを実装しようとしています。オーバーレイ機能は機能し、モーダルを視界にスライドさせますが、モーダルのコントローラーからibactionを呼び出すと、「インスタンスに送信される認識されていないセレクター」クラッシュが発生します。

そのコードが分離された状態で基本的な機能を再作成し、同じエラーをトリガーしました。私が話していることを見るために、あなたはできます ここからテストプロジェクトをダウンロードしてください.

ここで簡単なものが足りないと確信しています。どんな助けも大歓迎です。

役に立ちましたか?

解決

TestViewController DisplayModal:ModalViewControllerを表示すると、ModalController(20行目)をリリースします。これをしないでください - 生き続けるにはViewControllerが必要です。リリースすると、ビューのみが生存し続けます(サブビューとして追加されると保持されるため)。

また、ModalViewControllerではHideModaledendでModalViewをリリースしますが、保持していないので、それも削除します。

そのため、ビューが削除された後、ModalViewControllerのインスタンスのみをリリースする必要があります。 [自己リリース]によってこれを行うことができます。 Hidemodaledでは、これは珍しいパターンのようであり、私はそれをするのは気分が悪いです。

いくつかの提案:

  • ショーを保持し、メソッドを同じクラスで非表示にします。
  • コントローラーを使用してivarを維持します。
  • もう1つの可能性:ModalViewControllerを完全に削除し、すべてをtestViewControllerに入れます - しかし、これは、実際のことでどの程度のアクションが進行するかに大きく依存します。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top