読者です 読者をやめる 読者になる 読者になる

ミライスタート TECH系ブログ

株式会社ミライスタートのエンジニア達が気になったTECH系の記事等をアップしています!

Xcode, swift セグエなどのアニメーションを一時的に無効化する方法

こんにちわ。エンジニアの横田です。
iOSアプリでshowセグエ、presentセグエなどでの画面遷移時のデフォルトのアニメーションはありますが、これを無効化したい場合もあります。
f:id:miraistart:20161108214343p:plain
XcodeにはAnimatesというチェックボックスはありますが、どうもこれはiOS9以降の機能のようで9未満のOSにも対応しようとしたら、その他の方法が必要なようです。
f:id:miraistart:20161108214401p:plain
スマートなやり方ではないかもしれないですが、セグエも含めてUIView.setAnimationsEnabled(false)でアニメーションを無効化することができます。

UIView.setAnimationsEnabled(false)
//〜〜〜〜〜〜〜
//この間のアニメーションは無効化されます。
//〜〜〜〜〜〜〜
UIView.setAnimationsEnabled(true)

セグエのアニメーションを見せないようにする場合は、UIView.setAnimationsEnabled(true)を呼び出す箇所は、遷移先のUIViewControllerのviewDidAppearの中に書くといいようです。