2

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

そのコードを分離して基本機能を再作成しましたが、同じエラーが発生します。私が話していることを確認するには、ここからテストプロジェクトをダウンロードできます。

私はここで単純な何かを見逃していると確信しています。どんな助けでも大歓迎です。

4

1 に答える 1

2

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

また、ModalViewController hiddenModalEndedで、保持しなかったmodalViewを解放するので、それも削除します。

したがって、ビューが削除された後、ModalViewControllerのインスタンスのみを解放する必要があります。[セルフリリース]でこれを行うことができます。hiddenModalEndedにありますが、これは異常なパターンのようで、私はそれを行うのが苦手です。

いくつかの提案:

  • showメソッドとhideメソッドを同じクラスに保持します。
  • コントローラと一緒にivarを維持します。
  • もう1つの可能性:ModalViewControllerを完全に削除し、すべてをTestViewControllerに配置します-しかし、これは、実際に行われるアクションの量に大きく依存します。
于 2010-06-03T21:17:34.613 に答える