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
}
我有一个弹出窗口,我是这样调用的:
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
}