Xcode with swift:是否可以在不重置第一个视图控制器的情况下显示另一个视图控制器?

时间:2016-07-30 20:05:45

标签: ios swift sprite-kit xcode-storyboard

我正在创建一个带暂停按钮的简单游戏。我希望在我返回时显示具有暂停屏幕的另一个视图控制器而不重置游戏视图控制器。我尝试的每件事都导致游戏视图控制器被重置,当我按下继续按钮并返回游戏时。 有没有人知道如何在不重置游戏的情况下做到这一点? 这是一个sprite工具包和xcode中的swift iOS应用程序。

2 个答案:

答案 0 :(得分:2)

您可以显示基于弹出窗口的视图。您可以根据需要创建.xib并设计暂停视图。然后你可以在不重置任何东西的情况下恢复游戏。

示例代码:

  // Set Pause Page
  var pauseView  = PauseView.loadFromNib() // need an extension

  @IBAction func Pause(sender: UIButton) {
    pauseView.btnResume.addTarget(self, action: #selector(resume(_:)), forControlEvents: .TouchUpInside)
    // set place on view
    view.addSubview(pauseView)
  }

  func resume(sender:UIButton) {
    pauseView.removeFromSuperview()
  }

我为你创建了一个演示:

在Github上提供完整演示: Get Source Code

答案 1 :(得分:0)

在原始视图控制器中创建变量:

var shouldReset = true

然后,当您执行segue时,请在prepareForSegue

中添加
let vc = destination as! //Your view controller
vc.shouldReset = false

viewDidLoad(或重置数据的任何地方):

if shouldReset == true {
    //Reset
}