Как скрыть дочерний вид от родительского после некоторой задержки

Спрятать дочерний вид через несколько секунд Я установил время для этого, но я не могу получить доступ к дочернему viewcontroller в своей функции таймера, которую я пытался отменить, удалить из родительского файла не удалось. только self.view.isHidden = true работает, я не могу поместить его в таймер

Мой родительский вид

введите описание изображения здесь

Детский вид:

введите описание изображения здесь

Код кнопки: введите описание изображения здесь

Код таймера: введите описание изображения здесь

1 ответ

Решение

В Like_btn_Action() функция, вы:

  • создать экземпляр LikeViewController
  • добавить его как дочерний контроллер вида
  • добавить свой вид на ваш взгляд
  • установить цвет фона этого представления

и затем функция выходит. На данный момент у вас больше нет ссылки на ваш экземпляр LikeViewController... likeVC вышел за рамки.

Вам необходимо использовать переменную уровня класса, чтобы сохранить ссылку на загруженный дочерний контроллер представления, по следующим строкам:

var likeVC: LikeViewController?
@IBAction func Like_btn_Action(_ sender: Any) {
    likeVC = self.storyboard?.instantiateViewController( etc ...)
}

Затем, когда вы захотите удалить добавленное вами представление, вы можете "добраться до него" через:

likeVC.view.removeFromSuperview()

например.

Другие вопросы по тегам