Je crée un jeu simple avec un bouton pause. Je veux montrer un autre contrôleur de vue avec l'écran de pause sans réinitialiser le contrôleur de vue de jeu quand je reviens. Chaque chose que j'ai essayé, a abouti à la réinitialisation du contrôleur de vue de jeu, quand j'appuie sur le bouton de reprise et retourne au jeu. Est-ce que quelqu'un sait comment je peux le faire sans réinitialiser le jeu? C'est un kit de sprite et une application iOS rapide dans xcode.Xcode avec swift: Est-il possible d'afficher un contrôleur de vue sur un autre sans réinitialiser le premier?
Répondre
Vous pouvez afficher une vue contextuelle . Vous pouvez créer .xib et concevoir votre vue de pause comme vous le souhaitez. Ensuite, vous pouvez reprendre le jeu sans rien réinitialiser.
Exemple de code:
// 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()
}
J'ai créé une démo pour vous:
démo complète disponible sur Github:Get Source Code
Merci. C'est ce que j'espérais possible. Je vais essayer! –
OP a demandé un projet de kit de sprite, vous avez construit un projet UIKit, votre projet n'a pas répondu à la question –
OMG. J'ai sauté ce détail :( – fatihyildizhan
Créer une variable dans votre contrôleur de vue original:
var shouldReset = true
Ensuite, lorsque vous effectuez une Segue arrière, ajoutez dans votre prepareForSegue
:
let vc = destination as! //Your view controller
vc.shouldReset = false
Dans votre viewDidLoad
(ou chaque fois que vous réinitialiser vos données):
if shouldReset == true {
//Reset
}
Eh bien. Pour moi, tous ces fichiers sont très problématiques en ce moment ... J'ai un jeu de sprite gamescene appelé PlayGameScene où je crée des nœuds volant à travers l'écran. Je veux qu'ils restent immobiles dans les airs, tant que c'est le contrôleur de vue de pause, qui est au point. Quand je reviens, je veux que les nœuds continuent leur voyage. J'ai aussi un PlayViewController. Alors, où dois-je placer le code? (désolé pour ma stupidité) –
Vous devez étudier les données persistantes de docs de pommes officielles sur rapide. Cela devrait vous aider. – Dershowitz123
Pour en savoir plus, vous pouvez consulter la [documentation relative aux données persistantes] (https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson10.html). – penatheboss
Vous devez distinguer SKView de UIView, sprite-kit et UIKit, utilisez le projet de démonstration pour mieux comprendre ce qu'est un skscene –