如何编程延迟?

时间:2018-04-19 11:09:45

标签: ios swift xcode uiviewcontroller delay

我有两个视图控制器。

我在第一个VC中创建了imageview(在Gif文件中)。 5秒后,我希望页面传递到第二个vc。第一个VC代码是这样的:

class LemonVC: UIViewController {

    @IBOutlet weak var LemonGif: UIImageView!
    override func viewDidLoad() {
        super.viewDidLoad()


        LemonGif.loadGif(name: "sufoo")

    //        DispatchQueue.main.asyncAfter(deadline: .now() + 
    .seconds(4), execute: {
    //
    //        })
        // Do any additional setup after loading the view.
    }

enter image description here

第一个VC名称是LemonVC

第二个VC名称是SecondVC

2 个答案:

答案 0 :(得分:1)

一种可能性是在第一个和第二个控制器之间使用segue来定义导航路径(从第一个控制器中的"黄色"点拖动到第二个控制器上。此示例使用{{1 }}))

Segue

确保给它一个标识符名称,您需要在代码中使用它。

我可能会使用show而不是viewDidAppear,至少这意味着该视图已转换为屏幕。

然后,您需要做的就是使用viewDidLoad来执行segue,它将显示下一个控制器

UIViewController#performSegue

答案 1 :(得分:0)

试试这个:

  DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5), execute: {
// go some where
// example
let storyBoard = UIStoryboard(name: "Main", bundle: nil)
        let introRootVC = storyBoard.instantiateInitialViewController() // it's main controller, if you want to another create Story board ID 
        self.present(introRootVC!, animated: true, completion: nil)
})

您可以更改延迟,秒(5)< - here