Как просмотреть удалить подпредставление? - PullRequest
0 голосов
/ 08 ноября 2019
let overlayView = UIView()

overlayView.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.35)

overlayView.frame = self.view.bounds

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

    if indexPath.row == 0{ self.view.addSubview(overlayView) {

        performSegue(withIdentifier: "language", sender: nil)
    }
}

1 Ответ

0 голосов
/ 08 ноября 2019

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

class VC1: UIViewController {
  var overlayView: UIView?


override func viewDidAppear() {
  super.viewDidAppear()
  overlayView?.removeFromSuperView()
}

Или вы можете использовать шаблон протокола / делегата длясообщите VC1, что VC2 был удален, и используйте этот метод для удаления overlayView. Это более чистое решение.

Однако, если вы делаете то, что я думаю, вы пытаетесь сделать (см. Мой комментарий), я думаю, что есть лучший подход - обрабатывать все это во втором контроллере представления. Сделайте так, чтобы основной вид контроллера второго представления выполнял маскирование, установив его альфа, затем добавьте представление контейнера в центр этого представления и добавьте весь свой контент / функциональные возможности в это представление контейнера. Таким образом, когда вы отклоните второй, слой размытия будет сопровождаться им.

...