如何自动从一个视图控制器移动到另一个控制器?

时间:2017-07-31 04:44:52

标签: ios swift xcode

我想在几秒钟后加载我的应用程序后切换到另一个视图控制器,该怎么做?

5 个答案:

答案 0 :(得分:2)

试试这个

您可以在块中执行segue,导航和显示下一个视图控制器

ViewDidLoadViewWillAppear

中添加此内容
 DispatchQueue.main.asyncAfter(deadline: .now() + 2, execute: {
      self.performSegue(withIdentifier: "leadingToTutorial", sender: self)
 }) 

答案 1 :(得分:1)

Swift 3.0 中,您使用Time将一个 ViewController 移动到第二个 ViewController 。在这里我创建了代码,所以观看它。

导入UIKit

class ViewController: UIViewController {

    var gameTimer: Timer! //Timer object

    override func viewDidLoad() {

        super.viewDidLoad()

        gameTimer = Timer.scheduledTimer(timeInterval: 0.5, target: self, selector: #selector(timeaction), userInfo: nil, repeats: true)

    }

    //Timer action
    func timeaction(){

        //code for move next VC
        let secondVC = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
                self.navigationController?.pushViewController(secondVC, animated: true)
        gameTimer.invalidate()//after that timer invalid

    }
}

我希望它的工作。

答案 2 :(得分:0)

当你的第一个ViewControllers的viewDidLoad方法将执行时,你可以定义你的代码For Move to Another ViewController,For Some Second delay你可以使用

延迟几秒

DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
    // your code here For Pushing to Another Screen
}

在这里你可以定义你想要多长时间作为延迟,例如我提到0.1,你可以根据你的要求定义

答案 3 :(得分:0)

使用Timer

Class name {
  private var timer: Timer?

  fun viewDidLoad() {
        timer = Timer.scheduledTimer(timeInterval: 5, target: self, selector: #selector(yourMethod), userInfo: nil, repeats: false)

  }

  objc func yourMethod() {
   performSegue(withIdentifier:Sender:)
  }
}

答案 4 :(得分:0)

在您的视图的viewDidLoad()方法中,您可以在方法的末尾添加以下行

[self performSelector:@selector(goNext:)withObject:nil afterDelay:5.0];

goNext:方法中,您可以添加

[self.navigationController pushViewController:vc animated:YES];

执行导航并转到下一个视图。