Задать вопрос
@Serg1212

Как в одном контроллере вызвать dealloc?

Суть задачи:
есть ViewController
У него есть свойство view2 = UIView()

в методе viewDidLoad() я программно создаю ему размеры и добавляю на главное view.
Вопрос: методы viewWillDisappear() и viewDidDisappear() как можно вызвать в этом же контроллере?
Они ведь приходят до и после удаления.
спасибо
  • Вопрос задан
  • 153 просмотра
Подписаться 2 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
maximglobak
@maximglobak
iOS developer
Если я правильно понял тебя, то тебе нужно закрыть UIViewController изнутри?
Если так, то можешь попробовать метод
func dismiss(animated flag: Bool, 
  completion: (() -> Void)? = nil)

Этот метод говорит контроллеру "закройся". Если у тебя есть navigationController, то можно вызвать метод
navigationController?.popViewController(animated: true/false)

В таких случаях контроллер закроется и вылетит из памяти, а при это у него вызовется метод dealloc. Конечно если у тебя нет сильной ссылки на него.
Ответ написан
Комментировать
tikhonov666
@tikhonov666
iOS, Swift, Objective-C
viewWillDisappear() и viewDidDisappear() это методы жизненного цикла вью контроллера, эти методы вызываются самим фреймворком UIKit, вручную, обычно, они не вызываются. Вызываются фрейморкомом они тогда, когда вью контроллера собирается исчезнуть и когда оно исчезло соответственно, только после этого контроллер будет удален из памяти.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы