быстрое открытие пользовательского всплывающего окна, только если оно закрыто - PullRequest
0 голосов
/ 19 марта 2020

у меня есть всплывающее окно, которое я вызываю так:

if !MainView.isOpen.isPopupOpen{
        if #available(iOS 13.0, *){
            MainView.isOpen.init(isPopupOpen: true)
                var popOverVc = UIStoryboard(name: "CreateSurvey", bundle: 
  nil).instantiateViewController(identifier: "greatPopup") as! PopupViewController
                   self.addChild(popOverVc)
                                  popOverVc.view.frame = self.view.frame
                                  self.view.addSubview(popOverVc.view)
                                  popOverVc.didMove(toParent: self)
            }
    }
}

Я не могу проверить, ложно ли оно, потому что xcode говорит: член экземпляра isPopupOpen не может использоваться для типа 'MainView.isOpen «Я пытался получить текущее состояние, используя структуру, но это не сработало. Вот мой Struct:

  struct  isOpen {
  var isPopupOpen: Bool!
}

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

@IBAction func removeAnimation(_ sender: Any) {
    MainView.isOpen.init(isPopupOpen: false)
    removeAnimate()
}

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

Thx

1 Ответ

0 голосов
/ 20 марта 2020

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

if self.view.subviews.contains(myView) == false {
  // Open popup since it is closed, not presented in the view
  // Or, in your case self.children.contains(popupView)
} else {
  // Do Nothing
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...