1

再現しやすい:

  • 新しいアプリを作成する
  • このコードを、開始時に起動される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を呼び出すことができないことがわかりました。presentViewControllerviewDidLoadviewWillAppear

したがって、私の回避策は、LoginViewControllerのビューのアルファを 0 に設定し、それを 1 にアニメートすることです (別の効果であることはわかっていますが、呼び出してメイン コントローラーを表示させ、ミリ秒後に を表示させるpresentViewControllerよりも優れています)。ビューが表示されます)。viewDidAppear(not literally)LoginViewController

4

0 に答える 0