iOS按下按钮时,希望延迟视图控制器之间的segue

Vee*_*jay 3 uiviewcontroller ios swift

我是swift和Objective C的新手,我有一个应用程序,从主视图控制器到按钮按下时的第二个视图控制器.第二个视图控制器打开一个摄像头,每次我点击按钮时,摄像头打开都会有一些延迟.我认为这与线程以及如何处理进程有关.

我想在我放置第一个视图控制器上的按钮和屏幕上显示第二个视图控制器之间引入延迟.是否存在可以这种方式应用的延迟?

这是我的主视图控制器的代码与按钮:

import UIKit

class ViewController: UIViewController {

    @IBAction func itemAction(_ sender: AnyObject) {
        performSegue(withIdentifier: "segue", sender: self )
    }

    @IBAction func logosAction(_ sender: Any) {
        performSegue(withIdentifier: "segue2", sender: self )
    }

    @IBOutlet var itemsButton: UIButton!

    @IBOutlet var carsButton: UIButton!


    override func viewDidLoad() {
        super.viewDidLoad()

        itemsButton.layer.cornerRadius = 10
        itemsButton.clipsToBounds = true

        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Pus*_*dra 8

无论何时使用用户performSegue方法,您都需要使用这样的方法

在具有10秒延迟的示例中

DispatchQueue.main.asyncAfter(deadline: .now() + 10.0, execute: {
   self.performSegue(withIdentifier: "segue", sender: self )
})
Run Code Online (Sandbox Code Playgroud)

更新

在这个例子中有5秒的延迟

DispatchQueue.main.asyncAfter(deadline:.now() + 5.0, execute: {
   self.performSegue(withIdentifier:"segue",sender: self)
})
Run Code Online (Sandbox Code Playgroud)

希望这会对你有所帮助.

  • @Viv你可能会在按钮的故事板中设置segue然后.从视图控制器添加手动segue以使此延迟起作用 (2认同)