I am fairly new to swift and Objective C, and I have an app that goes from the main view controller to the second view controller on a button press. THe second view controller opens up a camera and every time I click the button there is somewhat of a lag in the camera opening. I reckon this has something to do with the thread and how the process is being handled.
I want to introduce a delay between when my button on the first view controller is placed and when the second viewcontroller is displayed on the screen. Is there a delay that can be applied this way?
Here is the code to my main view controller with the button:
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.
    }
}
Thank you!
Whenever you user performSegue  method then you need to use like that
In the example with a 10 second delay
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0, execute: {
   self.performSegue(withIdentifier: "segue", sender: self )
})
Updated
In this example with 5 second delay
DispatchQueue.main.asyncAfter(deadline:.now() + 5.0, execute: {
   self.performSegue(withIdentifier:"segue",sender: self)
})
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With