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 - Fatal编程技术网

Ios 在没有用户交互的情况下从一个视图控制器切换到另一个视图控制器

Ios 在没有用户交互的情况下从一个视图控制器切换到另一个视图控制器,ios,swift,Ios,Swift,我正在试图弄清楚如何生成一个代码,使一个视图控制器转到另一个视图控制器,而无需按下按钮即可转到第二个视图控制器 几乎是一样的,LaunchScreen.storyboard会转到Main.storyboard,无需按下按钮,它会自动执行。我不熟悉编码,非常感谢您的帮助。这取决于您实际希望如何显示视图控制器 如果您试图复制启动屏幕,那么您可能不希望下一个VC被推到堆栈上 我想对于您提供的信息,最好的选择是在短时间延迟后更改rootViewController。这样做应该可以: let delayI

我正在试图弄清楚如何生成一个代码,使一个视图控制器转到另一个视图控制器,而无需按下按钮即可转到第二个视图控制器


几乎是一样的,LaunchScreen.storyboard会转到Main.storyboard,无需按下按钮,它会自动执行。我不熟悉编码,非常感谢您的帮助。

这取决于您实际希望如何显示视图控制器

如果您试图复制启动屏幕,那么您可能不希望下一个VC被推到堆栈上

我想对于您提供的信息,最好的选择是在短时间延迟后更改rootViewController。这样做应该可以:

let delayInSeconds = 5.0

DispatchQueue.main.asyncAfter(deadline: .now() + delayInSeconds) { in

    let appDelegate = UIApplication.shared.delegate as? AppDelegate
    let vc = ViewController()
    appDelegate?.window?.rootViewController = vc
}

是的,您可以在不执行任何操作的情况下推送或显示另一个视图控制器。您只需要在想要触发它的地方调用push或present代码

例: 如果您想在定时器功能上触发它,请在此处添加推送或显示代码

//I added this code in first viewController's viewDidAppear, so your second controller will be called after 10 seconds.
    override func viewDidAppear(_ animated: Bool) {

    super.viewDidAppear(animated)

    //If you are using Storyboard
    //10.0 seconds
    DispatchQueue.main.asyncAfter(deadline: .now() + 10.0) {

        //If your first viewController is in Navigation stack
        if let secondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SecondViewControllerID") as? SecondViewController {

            if let navigator = self.navigationController {

                navigator.pushViewController(secondViewController, animated: true)
            }
        }

        //If your first viewController is NOT in Navigation stack
        if let secondViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "SecondViewControllerID") as? SecondViewController {

            self.present(secondViewController, animated: true, completion: nil)
        }
    }
 }

请参阅本文:

我将在AppDelegate或我正在使用的第一个视图控制器中发布此代码的位置?在您正在使用的第一个vc中,如何在示例中显示此代码,以及将代码放置在何处?在第一个视图控制器或第二个视图控制器中?如果显示或按下第二个控制器,则应在第一个控制器中添加代码。实际上,你想在何时/何地转到第二个控制器?我只想让它转到第二个控制器,只需在第二个视图控制器上显示内容即可,但你想在10秒后转到第二个控制器