私は優れたTSAlertViewプロジェクトを使用して、視覚障害のある人向けにフォントを拡大したポップアップ アラートを作成しています。残念ながら、数日間頭を悩ませている問題に遭遇しました。
TSAlertViewユーザーがアプリの新しいページに移動して現在のページのコンテンツを確認しようとしているときに、バリデータ ポップアップとして使用しています。つまり、ユーザーがボタンを押してアプリの新しいページに移動するTSAlertViewと、画面にポップアップが表示され、ユーザーが [はい] ボタンを押すと、現在のページがカスタム セグエを使用UIViewControllerして別のページに置き換えられます。UIViewControllerアプリはランダムにクラッシュし、EXC_BAD_ACCESS私の推測では、終了アニメーションが完了するUIViewController前に現在の割り当てが解除されるとクラッシュするということです。TSAlertView
明らかな回避策は、現在のアニメーションUIViewControllerと新しいアニメーションの間のアニメーションの時間を長くすることですが、それは単にタイミングの良さに依存するだけであり、これは災害のレシピです。UIViewController割り当てが解除されるまで、プレゼンテーションの割り当てが解除されないようにする簡単な方法TSAlertViewはありますか? メイン プロジェクトは ARC を使用していますTSAlertViewが、非 ARC です。
編集:ラバーダッキングの動作。-(void) showメソッドに次の 2 行を追加しました。
_presentingViewController = [[UIApplication sharedApplication] keyWindow].rootViewController;
[_presentingViewController retain];
と で対応releaseし-(void) deallocます。現在、すべてが適切に機能しているようです。循環保持チェーンを作成していますか? より良い答えはありますか?