我是一名新程序员,我有2个视图控制器,游戏结束后,会弹出一个警告,并带有“再次播放”按钮。

我不想在第二个视图控制器上的计时器之后重新启动游戏,而是希望再次播放返回具有播放按钮的第一个视图控制器。我该怎么办?我有以下警报的代码:

   func subtractTime() {
    seconds--
    timerLabel.text = "Time: \(seconds)"

    if(seconds == 0)  {

        timer.invalidate()
        let alert = UIAlertController(title: "Time is up!",
            message: "You scored \(count) points",
            preferredStyle: UIAlertControllerStyle.Alert)
        alert.addAction(UIAlertAction(title: "Play Again", style: UIAlertActionStyle.Default, handler: {
            action in self.setupGame()
        }))
        presentViewController(alert, animated: true, completion:nil)


    }
 }

最佳答案

通常可以使用segue来完成,segue告诉情节提要在调用指定动作时连接到另一个视图控制器

对于segue,您首先需要通过声明其标识符在故事板上设置segue。然后您可以在函数中调用

performSegueWithIdentifier("segueId", sender: nil)


我相信你也可以在presentViewController之后做

let mainViewController = yourMainControllerName();
presentViewController(mainViewController, animated: true, completion: nil)


现在,在用户在alert.addAction中将其取消后,您应该将其中之一放置在处理程序中

alert.addAction(action in self.setupGame() UIAlertAction(title: "Play Again", style: UIAlertActionStyle.Default, handler:{(ViewController: UIViewController!) in let mainViewController: secondViewController = segue.mainViewController as secondViewController}

关于iphone - 返回主 View Controller ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33578639/

10-14 22:20