Avatar
質問: UINavigationController の遷移アニメーション時、前後のVC同士が被らないように変更することは可能なんでしょうか? 背景: 現在 Share Extension で脱 SLComposeServiceViewController をしていて (理由としては、なんか iOS 13 あたりから背景に対して中身が小さくなって不恰好なことや、マルチアカウントを強く意識したアプリなので最初にユーザーにアカウントを選ばせたい、アプリ側の投稿画面とボタンの位置等を統一したいなどがあります)、ただし見た目はなるべく元のままにしたい (のとすりガラスが好き) ので、背景に UIVisualEffectView + UIBlurEffect を敷いてみています。 ところが、
  • UINavigationController (のサブクラス)のviewで UIVisualEffectView を背景にして、各子VCの背景は透明にすると、画面遷移中に遷移先VCの裏に遷移元VCがまるまる見えてしまう
  • 各子VCの背景に UIVisualEffectView を敷くと、それはそれで画面遷移中に一瞬 UIVisualEffectView が二重になり微妙な感じになる ということがわかりました。 では SLComposeServiceViewController はどうやっているのだろう?と観察すると、どうやら UIPageViewController のように遷移元VCと遷移先VCが隣にいる状態でスライドするだけ (重なりはしない) なので違和感がない、ということに気づきました。 これを UINavigationController で再現することは可能なのでしょうか?それとも自前で実装するしかないのでしょうか?
(edited)