0

私はUINavigationControllerそれにいくつかUIViewControllersを押し込みました。私が実装したいのは、2つのView Controllerを元に戻すことです。ただし、目的のコントローラーに到達する前に、スタック内の前のコントローラーをアニメーションで表示したいと思います(通過します)。popToViewController:これが私にとってうまくいかない主な理由です。

popViewControllerAnimated:フラグを以前のすべてに設定して呼び出しようとした別のことはUIViewControllers、フラグが設定されている場合、View Controller がpopViewControllerAnimated:その で呼び出されるようにするためviewDidAppear:です。これは私が望むものをほとんど与えてくれますが、アニメーションが滑らかでないのは好きではありません。コントローラーごとにアニメーションの速度が低下しますが、すべてのコントローラーを同じ速度で通過させたいと考えています。

私が考えているもう 1 つのアプローチは、これらのコントローラーを避け、すべてを 1 つのスクロール ビューに配置することです。これにより、ビュー トランザクションの作成方法を完全に制御できるようになります。

それでもナビコントローラーで何かできないかな?ご協力ありがとう御座います。

4

2 に答える 2

0

スムーズなアニメーションを実現できるとは思えません (おそらく、別の機能を実装するのではなく、viewDidAppear:おそらくそれを実現できます。たとえばviewControllers、スタックに 3 つある場合、3 番目にポップし、同時に 2 番目にポップを開始します。ポップアニメーションと同じくらい長い遅延 (0.25? わからない、テストしてください) (2 番目から 3 番目に 経由でアクセスします[self.navigationController viewControllers]) 多分それで動作します)。

viewControllersスクロールビュー内のすべての(ビュー)についてのアイデアはあまり好きではありません。- メモリ消費量が多すぎる可能性があります。できる。

他のオプションは、各viewControllerからスクリーンショットを保存することです。スムーズなポップ アニメーションのみが必要な場合は、それぞれのスクリーンショットをviewController( が開いている間のバックグラウンド スレッドでviewController) 取得し、それをグローバル スクロールビューの imageSet に追加できます。次に、ポップするとき-そのスクロールビューをすぐに表示し、スクロールビューの下で画像をアニメーション化しますviewControllersが、必要に応じてすでにポップされていますviewController

(一部のviewControllerコンテンツが動的に変更された場合、ユーザーは既に撮影されたスクリーンショットからすばやくスライドすることに気付かないため、重要ではない可能性があります)

あなたがいくつかの新しいアイデアを得ることを願っています:)

于 2012-07-17T15:45:30.123 に答える