Swift - деинициализировать представления, используя условное разматывание / выполнение Segue с - PullRequest
0 голосов
/ 29 мая 2019

Я использую UINavigationController в своем приложении.И я стараюсь изо всех сил управлять распределением памяти.Все мои представления имеют метод deinit, который вызывается / печатается всякий раз, когда выполняется unWindSegue или navigationController.popViewController(), если нет сильных ссылок.

При использовании performSegueWithIdentifer и override func prepare(for segue: UIStoryboardSegue, sender: Any?) метод deinit НИКОГДА не вызывается / не используется.Я думаю, что это связано с тем, что я перехожу не в памяти.

Можно ли иметь условный оператор при выполнении перехода?Как только мое приложение загружено, HomeView находится в памяти.И я также могу расслабиться, что позволяет освободить текущее представление.

У меня есть несколько просмотров, и я хочу как можно лучше управлять памятью.Можно ли peformSegueWithIdentifier один раз и всегда раскручивать представление, когда оно находится в памяти, с помощью условного оператора?

Псевдокод:

if navigationController.hasViewInMemory() {
   peformUnWindSegue()
} else {
   peformSegueWithIdentifier()
}

Или существует другой способ, который позволил бы освободить память при выполнении перехода, независимо от того, находится ли представление в памяти или нет?Мое приложение основано на времени и самой последней информации, и последнее, что я хочу, это вернуть старые / избыточные данные.

Я довольно новичок в управлении памятью, поэтому прошу прощения, если этот вопрос кажется немного идиотским.

...