Как управлять созданными экземплярами viewControllers - PullRequest
0 голосов
/ 28 декабря 2018

Подводя итог, как лучше всего управлять ВК?

В моем случае у меня есть 3 ВК в моей игре.Для переключения между ними кнопка в существующем VC активирует следующий код:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let viewController = storyboard.instantiateViewController(withIdentifier:"firstLevel")
self.present(viewController, animated: false, completion: nil)

Этот код работает, но каждый раз он создает новый VC, который вызывает проблемы в моей игре для глобальных переменных, таких как «Score»когда есть две копии одного и того же VC, и я предполагаю, что это действительно плохо для памяти.

Как лучше всего решить эту проблему?

Должен ли я закрыть текущий viewController, поместивследующая строка кода после того, как я создал следующий VC?:

self.dismissViewControllerAnimated(false, completion: nil)

1 Ответ

0 голосов
/ 28 декабря 2018

Вам нужно иметь только 1 vc, заменив rootViewController

 let viewController = storyboard!.instantiateViewController(withIdentifier:"firstLevel")
(UIApplication.shared.delegate as! AppDelegate).window!.rootViewController = viewController 

Поскольку ваш текущий код оставляет старые vcs в стеке, что наверняка вызовет проблемы с памятью

...