Swfit 4。最初的ViewController瞬间出错,然后修复

时间:2018-07-16 20:59:24

标签: ios uiviewcontroller swift4

在我的应用程序中,首次使用该应用程序时,会将用户带到特定的视图控制器(TutorialPageViewController)。每隔使用一次,用户就会被带到另一个视图控制器(HomeViewController)。

为此,我创建了第三个视图控制器(FirstBlankViewController),在其中显示应用程序徽标一秒钟。在那一秒之后,我调用了适当的视图控制器。此方法有效,但是在打开应用程序时,瞬间,您会看到错误的视图控制器(即TutorialPageViewController或HomeViewController),然后打开第一个,然后在第二秒钟后,它会执行正确的操作。

但是为什么在FirstBlankViewController(设置为初始视图控制器)之前会出现任何内容。即使一瞬间,它也不会出现。

这是FirstBlankViewController中的代码:

 override func viewDidLoad() {
    super.viewDidLoad()


    DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {

        let launchedBefore = UserDefaults.standard.bool(forKey: "launchedBefore")


        if launchedBefore  {

            print("Not first launch.")
            let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let newViewController = storyBoard.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
            self.present(newViewController, animated: false, completion: nil)

        } else {
            print("First launch")
            self.dismiss(animated: false)
            let storyBoard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
            let newViewController = storyBoard.instantiateViewController(withIdentifier: "TutorialPageViewController") as! TutorialPageViewController

            self.present(newViewController, animated: false, completion: nil)
        }

    })

}

我希望清楚!

谢谢

1 个答案:

答案 0 :(得分:1)

闪烁是每个应用(包括系统应用)发生的iOS错误/功能。它是一个缓存系统,显示来自应用程序的屏幕截图。它试图复制应用程序的最后状态,但是,它远非完美。请注意,无论您是否设置了启动屏幕/启动图像,都会发生闪烁。

只需忽略它,然后继续前进即可。