Wie entlassen Sie den aktuellen ViewController und gehen Sie zu einer anderen Ansicht in Swift
Ich bin neu in Swift und ich möchte wissen, wie Sie zum schließen der aktuellen Ansicht-controller und gehen Sie zu einer anderen Ansicht.
Mein storyboard ist wie folgt: MainMenuView -> GameViewController -> GameOverView. Ich möchte zu entlassen, die GameViewController zu gehen, um die GameOverView, nicht auf die MainMenuView.
Ich verwende den folgenden code in meine MainMenuView:
@IBAction func StartButton(sender: UIButton) {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("GameViewController") as! GameViewController
self.presentViewController(nextViewController, animated:true, completion:nil)
restGame()
}
In der GameViewController, ich benutze diesen code, aber es funktioniert nicht schließen Sie die GameViewController.
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("GameOverView") as! GameOverView
self.presentViewController(nextViewController, animated:true, completion:nil)
Dies ist Mein GameOverView Code :
class GameOverView: UIViewController{
//save the presenting ViewController
var presentingViewController :UIViewController! = self.presentViewController
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func ReplayButton(sender: UIButton) {
restGame()
didPressClose()
}
@IBAction func ReturnMainMenu(sender: UIButton) {
Data.GameStarted = 1
self.dismissViewControllerAnimated(false) {
//go back to MainMenuView as the eyes of the user
self.presentingViewController.dismissViewControllerAnimated(false, completion: nil);
}
/* let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("MainScene") as! MainScene
self.presentViewController(nextViewController, animated:true, completion:nil)*/
}
func restGame(){
Data.score = 0
Data.GameHolder = 3
Data.GameStarted = 1
Data.PlayerLife = 3.0
Data.BonusHolder = 30
Data.BonusTimer = 0
}
func didPressClose()
{
self.self.dismissViewControllerAnimated(true, completion:nil)
}
override func shouldAutorotate() -> Bool {
return false
}
deinit{
print("GameOverView is being deInitialized.");
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
//Release any cached data, images, etc that aren't in use.
}
override func prefersStatusBarHidden() -> Bool {
return true
}
}
Irgendwelche Vorschläge?
InformationsquelleAutor der Frage Michel | 2015-08-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was Sie tun können, ist lassen Sie die
GameOverView
vorgelegt werden, nachdem alle, wenn Sie die Präsentation derGameViewController
ist unten in der Hierarchie, und klicken Sie dann in IhremGameOverView
führen Sie den folgenden code, um zu schließen, wenn Sie wollen, zu entlassen, derGameOverView
wie in der folgenden Art und Weise:Der obige code aufgerufen werden müssen, wenn Sie wollen, zu entlassen, der
GameOverView
.Ich hoffe, dies hilft Ihnen.
InformationsquelleAutor der Antwort Victor Sigler
Den code unten bringt Sie zu den wichtigsten VC, Hier ist eine erprobte und getestete code.
InformationsquelleAutor der Antwort Abhinav Jha