2016-06-19 9 views
0

Ich arbeite an einer App mit mehreren View-Controllern. Ich habe einen Hauptmenü-Controller, Game-View-Controller mit einem Timer und einem Spiel über View-Controller.Ich brauche Hilfe beim Stoppen von Prozessen, wenn ich die View-Controller in swift ändere.

Hauptmenü hat eine Schaltfläche, die Sie zum Game View Controller führt. Es gibt einen Timer, der startet und wenn er Null erreicht, bringt er dich automatisch zum Spiel über den View-Controller.

Das Problem ist, dass, wenn ich in der Game-View-Controller bin und entscheide, um zum Hauptmenü zurückzukehren, der Timer fortgesetzt wird.

ich dann eine Warnmeldung:

Warning: Attempt to present <...> on <...> whose view is not in the window hierarchy! 

Wie erhalte ich den Timer zu stoppen, wenn ich View-Controller ändern?

Antwort

1

den Timer ungültig vor der Ansicht verschwindet:

override func viewWillDisappear(animated: Bool) { 
    timer.invalidate() 
    timer = nil 
    super.viewWillDisappear(animated) 
} 
+0

ich diesen Code hinzugefügt, aber ich den Timer = nil Teil entfernt, weil ich einen Fehler bekam. Ich habe var timer = NSTime() und es sagte ich konnte timer = nil nicht tun. Es funktioniert immer noch ohne es. Vielen Dank – user2303213