То, что я хочу добиться: SEGUE от gameVC до mainmenuVC и избавиться от gameVCКак уволить и деинировать (Game) ViewController с помощью swift?
Когда приложение начинает его первый показывает главное меню ViewController с кнопкой воспроизведения, которая перетекает в gameviewcontroller. Когда пользователь нажимает на кнопку меню спрайта следующая функция в gameviewcontroller вызывается и перетекает обратно в главное меню:
func returnToMainMenu() {
//This works but does not deinit the vc
navController?.dismissViewControllerAnimated(true, completion: nil)
/* this does not do anything:
navController?.popViewControllerAnimated(true)
*/
}
Это, вероятно, не так, как это делается правильно, и я думаю, что проблема может быть , но я не мог работать иначе, потому что gameViewController.navigationViewController равен нулю.
Вот так выглядит моя раскадровка: Так выглядит использование памяти, когда приложение работает. Эти всплески/шаги происходят всякий раз, когда загружается контроллер gameview. Мне кажется, что проблема в том, что gameviewcontroller не деинируется, когда вызывается returnToMainMenu().
Кроме того, это никогда не будет выполнена:
deinit {
debugPrintln("GameViewController deinitialized")
}
обновление:
Я удалил эту
navController = self
и определил NavController в returnToMainMenu так:
let navController = view.window?.rootViewController as! UINavigationController
segue back to main menu все еще работает, но он по-прежнему не деинит vc
Я предлагаю вам ясно, о том, что вы хотите достичь! Почему вы пишете свой собственный навигационный контроллер? Каким образом уже существующий не обладает достаточной функциональностью? – luk2302
Мне нужна функция в моей игре VC, которая переходит в menuVC и избавляется от gameVC. – densmoe