我是一名新程序员,我有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/