再現しやすい:
- 新しいアプリを作成する
このコードを、開始時に起動されるView Controllerにコピーします
class ViewController: UIViewController { override func viewDidAppear(animated: Bool) { UIView.animateWithDuration(5, delay: 5, options: UIViewAnimationOptions.CurveEaseInOut, animations: { }, completion: { finished in print("finished") } ) } }
「終了」は、起動後 10 秒 (アニメーションの長さから 5 + 遅延から 5) にログに記録されると予想されるときに、即座にログに記録されます。
これを修正するにはどうすればよいですか?
私が解決しようとしている元の問題は、presentViewController
(with animated: false
) beforeであるため、背面のコントローラーのビューが表示される前にviewDidAppear
ユーザーに表示できます。しかし、私はまたはLoginViewController
を呼び出すことができないことがわかりました。presentViewController
viewDidLoad
viewWillAppear
したがって、私の回避策は、LoginViewController
のビューのアルファを 0 に設定し、それを 1 にアニメートすることです (別の効果であることはわかっていますが、呼び出してメイン コントローラーを表示させ、ミリ秒後に を表示させるpresentViewController
よりも優れています)。ビューが表示されます)。viewDidAppear
(not literally)
LoginViewController