私は優れた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
ます。現在、すべてが適切に機能しているようです。循環保持チェーンを作成していますか? より良い答えはありますか?