popViewController の完了ブロック 質問する

popViewController の完了ブロック 質問する

を使用してモーダル ビュー コントローラを閉じるときにdismissViewController、完了ブロックを提供するオプションがあります。 に同様のものはありますかpopViewController?

完了引数は非常に便利です。たとえば、これを使用して、モーダルが画面から消えるまでテーブルビューから行を削除するのを延期し、ユーザーに行のアニメーションを表示させることができます。プッシュされたビュー コントローラーから戻るときにも、同じ機会が欲しいです。

popViewController完了ブロックにアクセスできるアニメーション ブロックに配置しようとしましたUIViewが、これにより、ポップされるビューに望ましくない副作用が発生します。

そのような方法が利用できない場合、回避策は何ですか?

ベストアンサー1

2 年以上前に回答が承認されたことは知っていますが、この回答は不完全です。

すぐに望むことを実現する方法はありません

API ではこれに対するオプションが提供されていないため、これは技術的には正しいですUINavigationController。ただし、CoreAnimation フレームワークを使用すると、基礎となるアニメーションに完了ブロックを追加できます。

[CATransaction begin];
[CATransaction setCompletionBlock:^{
    // handle completion here
}];

[self.navigationController popViewControllerAnimated:YES];

[CATransaction commit];

使用されたアニメーションが終了するとすぐに完了ブロックが呼び出されますpopViewControllerAnimated:。この機能は iOS 4 以降で利用可能です。

おすすめ記事