迅速:在执行其他操作后调用操作

时间:2018-08-02 05:05:43

标签: ios swift

我有两个动作。

我要执行第一个动作,然后再调用第二个动作。如果我添加这样的操作:

func actions {
    action1()
    action2()
}

但我的代码和操作是同时实现的。

我首先执行此代码:

let pageController = self.storyboard?.instantiateViewController(withIdentifier: "PageViewController") as! UIPageViewController

pageController.dataSource = self
pageController.delegate = self

firstPage = 0
secondPage = 1

guard let firstController = getContentViewController(withIndex: firstPage) else { return }
guard let secondController = getContentViewController(withIndex: secondPage) else { return }

pageViewController?.setViewControllers([firstController, secondController], direction: .reverse, animated: true, completion: nil)

这是一个翻转动画。

如果我使用此

func actions {
    action1()
    action2()
}

我的翻转动画将无法显示。

也许我需要使用计时器?

1 个答案:

答案 0 :(得分:1)

您可以在每个函数上包括回调,这样一旦函数操作完成,它们就会调用其他函数。例如:

创建回调函数

func action1(complete: @escaping (_ status: Bool) {
    // animation operation 

    // Notify callback 
    complete(true)
}

如何使用回调函数

action1(complete: { (animationCompleted)
   if animationCompleted {
     // Invoke second animation function 
     // Remember use `self` instance once your inside a callback method
     self.action2() 
   }
})