Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/98.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当按下按钮时,iOS希望延迟视图控制器之间的切换_Ios_Swift_Uiviewcontroller - Fatal编程技术网

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

当按下按钮时,iOS希望延迟视图控制器之间的切换,ios,swift,uiviewcontroller,Ios,Swift,Uiviewcontroller,我对swift和Objective C是相当陌生的,我有一个应用程序,可以通过按键从主视图控制器转到第二视图控制器。第二个视图控制器打开一个摄影机,每次我单击该按钮时,摄影机的打开都会有些滞后。我认为这与线程以及进程的处理方式有关 我想在放置第一个视图控制器上的按钮和在屏幕上显示第二个视图控制器之间引入一个延迟。是否存在可以通过这种方式应用的延迟 以下是使用按钮连接到我的主视图控制器的代码: import UIKit class ViewController: UIViewController

我对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.
    }

}

谢谢大家!

无论何时使用
performsgue
方法,都需要这样使用

在示例中,延迟10秒

已更新

在本例中,延迟5秒


我想你应该考虑解决这个问题。你能告诉我们你是如何添加相机层的吗?我补充说,在ViewDidAppearandWorksFine中,我正在使用第一个屏幕连接到这里的开源代码。摄像机初始化在此viewcontroller中进行:参考此::谢谢您的回答,不幸的是,将此添加到我的代码中根本不会导致10秒延迟,我一定是做了一些错误的事情。我有如下代码,并期望在我按下项目按钮后有10秒的延迟@IBAction func itemAction(uSender:AnyObject){DispatchQueue.main.asyncAfter(截止日期:.now()+5.0,执行:{self.performsgue(带标识符:“segue”,sender:self)})我是否遗漏了什么?我不认为您遗漏了什么。我可能是因为
清理代码
项目
而发生的。但如果一切顺利的话,请你投票表决我的答案,以便有人能从中得到帮助。我还在更新的检查中添加了您的代码Thanks@Viv你可能已经在故事板中为按钮设置了顺序。为该延迟添加来自视图控制器的手动分段到work@GoodSp33d对就这样@谢谢你的回答!肯定让我走上正轨:)谢谢!我试着按如下方式实现,按下按钮后没有任何延迟。我肯定做了一些不正确的事情,但不确定是什么:@IBAction func itemAction(uu发送者:AnyObject){let timer=timer.scheduledTimer(withTimeInterval:10.0,repeats:false){(timer)in self.performsgue(withIdentifier:“segue”,发送者:self)}@Viv下面的链接可能对您有用
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0, execute: {
   self.performSegue(withIdentifier: "segue", sender: self )
})
DispatchQueue.main.asyncAfter(deadline:.now() + 5.0, execute: {
   self.performSegue(withIdentifier:"segue",sender: self)
})
DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {
    self.performSegue(withIdentifier: "segue", sender: self )
}
let timer = Timer.scheduledTimer(withTimeInterval: 10.0, repeats: false) { (timer) in
    self.performSegue(withIdentifier: "segue", sender: self )
}