1

ストーリーボードとARCを使用してA、2つのビューコントローラーを作成しました。BVCはbyをA呼び出しB、 byperformSegueWithIdentifierB戻ります。I am in VCをシミュレートするまで、これはうまく機能しています。それを行うと、アプリがクラッシュしますAdismissViewControllerAnimatedMemory WarningB

Thread 1: EXC_BAD_ACCESS (code=1, address=0x...)

を実行するとすぐにdismissViewControllerAnimated. デバッグのために、(NSLog と だけで) に独自のものを追加loadViewAました。[super loadView]それが呼び出され、アプリが でクラッシュしていることがわかり[super loadView]ます。

Aのビュー階層がメモリ警告によって破壊されたことは知っています。しかし、ドキュメントを理解しているように、 の後にアクセスすると自動的に再作成されるはずdismissViewControllerAnimatedですB。私のコードが実行されるべきではないときにloadView、すべてが初期化されviewDidLoadviewWillAppearクラッシュの前にそれらのどれも呼び出されません。さらにデバッグする方法、または悪いアドレスが悪くなる前にその ID を取得する方法を提案する人はいますか?

4

2 に答える 2

0

presentingViewControllerでstrongを使用してみてください

例えば:

@property(strong、nonatomic)CameraViewController * myCVC;

于 2012-08-21T02:21:53.730 に答える
0

ビューコントローラーAオブジェクトをオブジェクトごとに再構築した後、問題が見つかりました。A では、1 つの UIPanGestureRecognizer と 1 つの UITapGestureRecognizer を使用しています。ストーリーボードにこれら 2 つのオブジェクトを追加すると、A のビューをアンロードするときに 2 つのレコグナイザーを nil に設定する viewDidUnload に 2 つの行も追加されます。バグと思われる ...GestureRecognizer の場合。これらの2行を削除すると、問題が解決しました。

于 2012-08-25T15:18:13.847 に答える