swift 仅在关闭时打开自定义弹出窗口

swift open custom popup only if closed

我有一个弹出窗口,我是这样调用的:

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  isOpen {
  var isPopupOpen: Bool!
}

下面是我尝试在弹出窗口中更改结构值的方式 viewcontroller:

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

有没有其他方法可以解决仅在关闭时打开弹出窗口的问题,或者我该如何解决这个问题?

感谢

您可以检查视图的子视图是否包含您添加的 view/view 控制器。可以这样实现:

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
}