0

連続して表示する必要がある 3 つの UIViewControllers があります。UIViewController1 は私のメイン ビュー コントローラーで、ボタンがあります。ボタンをクリックすると、UIViewController2 がモーダルに表示されます。30 秒後、UIViewController3 が自動的にモーダル表示されます。最初に UIViewcontroller2 を閉じてから、UIViewController3 を表示する必要がありますか? UIViewcontroller3 に [完了] ボタンがあり、クリックすると UIViewController1 (メイン ビュー コントローラー) に戻ります。最初にチェーンから UIViewController2 を閉じてから、UIViewController1 で alloc/init を実行して表示する必要がありますか? このプロセスでメモリリークが発生したくありません。

助けてください。

4

1 に答える 1

0

これを行う主な方法は 2 つあります。XCode でこのシナリオをテストした後。

1 つ目は、最終的なビュー コントローラー (3 つ目) からすべてのモーダル ビュー コントローラーを破棄することです。これにより、アニメーションを使用してビュー コントローラーを閉じることができなくなります。それらをアニメーション化しようとすると、2 番目は却下されません。(確かに、アニメーションを使用して 2 番目のものを閉じることはできますが、3 番目から 1 番目へではなく、2 番目から 1 番目へのアニメーションが表示されます)

これを行うには、次の行を呼び出すことができるように、2 番目のビュー コントローラーをプロパティとして 3 番目のビュー コントローラーに渡す必要があります。

[[self parentVC] dismissModalViewControllerAnimated:NO];

parentVC は、2 番目のビュー コントローラーを指すように設定する必要があるプロパティであることに注意してください。

次に、却下するとき:

[self dismissModalViewControllerAnimated:NO];
[[self parentVC] dismissModalViewControllerAnimated:NO];

これにより、最初のView Controllerに戻ります。

2 番目の方法は、実際には良くも悪くもありませんが、おそらくコーディングが容易であり、3 番目のビュー コントローラーに進む前に 2 番目のビュー コントローラーを閉じることです。繰り返しますが、おそらく 2 番目から 3 番目への遷移の間でビュー コントローラーをアニメーション化する必要はありませんが、3 番目から 1 番目への遷移の間はアニメーションできます。

于 2013-02-12T20:28:36.953 に答える