viewControllerで、今の表示を消して、すぐに違う画面に遷移したい時など
dismissController presentedViewController
と書きますがこれが上手くいったり行かなかったりします。
早すぎて今のviewが変わったりして、どのviewにpresentするのか分からないパターンと考えられるので遅延処理で遅延して非同期実行するとでうまくいきます。
dismissController //0.5秒遅延 let delay = 0.5 * Double(NSEC_PER_SEC) let time = dispatch_time(DISPATCH_TIME_NOW, Int64(delay)) dispatch_after(time, dispatch_get_main_queue(), { presentedViewController })
遅すぎてもダメなので、ユーザが不快にならない範囲で遅延しましょう