UITableViewのdeselectRowAtIndexPath:を使用して少し実験して、テーブルビューに戻ったときにどの行が表示されているかをユーザーが認識できるようにしました。
これをviewWillAppearとviewDidAppearに配置すると、結果がわずかに異なることに気付きました。前者は、ポップされたビューがスライドアウトするときにアニメーションを開始しますが、後者は、ポップされたビューが完全になくなったときにのみアニメーションを開始します。結果として、後者はより「発音された」と感じます(アニメーションの多くは、行が完全に画面に表示された状態で発生します-実際にはすべてです)。
美的には、これは便利な区別です。ユーザーエクスペリエンスをより細かく制御できるからです。ただし、いくつかの質問:
- どちらか一方を使用する必要がある技術的な理由はありますか?
- いくつかのAppleアプリケーションを注意深く見ると、viewWillAppearでアニメーション化されていると思います。誰でも確認できますか?
- viewWillAppearを使用すると、アニメーションが画面外で完了するリスクがありますか(ポップされたView Controllerでの処理が遅れているなどの理由で)?それとも、ポップされたビューからの遷移の開始時にのみ起動しますか?