首先,我必须说这个平台上有太多的信息,因为每个人都在帮助。非常感谢你。
目前,我已达到一定程度,我无法自行前进。
这是我的问题:
我有一个MainScreen ViewController,它嵌入在导航控制器中。 从这个MainScreen,我可以用Segue显示一个创建Gamescene的GameViewController。 在这个Gamescene中,我有一个按钮,当它被点击时,显示一个Popup并暂停Gamescene。
此弹出窗口包含两个按钮:
这是我的问题。 我无法为结束按钮创建功能。我尝试过不同的segll星座,但它并没有很好地结束。
我认为这里的难点在于,这个按钮是在一个单独的类中。根据我的理解,这里的层次结构将是:
GameViewController - > GameScene - >弹出窗口 - > EndButton
您有什么想法可以解决这个问题吗?如果不使用segues,还有其他方法可以解决这种转变吗?
非常感谢您的帮助!
亲切的问候, 菲尔
更新
在我的Gamescene中,弹出窗口基本上是这样的:
class GameScene: SKScene, SKPhysicsContactDelegate {
// ....
var pauseButton : UIButton! = UIButton()
var pausePopup : PausePopup! // my Popup class with the End button
// ....
override func didMoveToView(view: SKView) {
//configuring the button
pause_button.addTarget(self, action: "pauseButtonPressed", forControlEvents: UIControlEvents.TouchUpInside)
self.view?.addSubview(pause_button)
}
func pauseButtonPressed() {
self.pausePopup = PausePopup(nibName: "uxPausePopup", bundle: nil)
self.scene!.view!.paused = true
self.pausePopup.showInView(self.viewPlaceHolder, animated: true, scene: self)
}
// this is where my popup appears.
在我的Popup类中,我有一个EndButton的动作,它位于Popup上,我想从中返回主屏幕:
@IBAction func showMainScreen(sender: AnyObject) {
// this does not work ...
self.performSegueWithIdentifier("showMainScreen", sender: nil)
}
答案 0 :(得分:1)
您无法从showInView调用其他视图,您需要关闭popOver并从GameScene调用mainView,这样您就可以在PausePopup或协议中创建竞争处理程序,将popOver的结果传递给GameScene处理结果