swift - 仅在关闭时快速打开自定义弹出窗口
问题描述
我有一个弹出窗口,我这样称呼它:
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!
}
这就是我试图在弹出视图控制器中更改我的结构的值的方式:
@IBAction func removeAnimation(_ sender: Any) {
MainView.isOpen.init(isPopupOpen: false)
removeAnimate()
}
有没有其他方法可以解决仅在关闭时打开弹出窗口的问题,或者我该如何解决这个问题?
谢谢
解决方案
您可以检查视图的子视图是否包含您添加的视图/视图控制器。可以通过以下方式实现:
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
}
推荐阅读
- sql - SQL Redshift:如何在基于另一列值的连接中使用值
- python - peewee - 动态更改架构
- git - 解决与 VS2019 + KDiff3 的冲突时,Git 标记开始出现
- qt - QTableWidget:行大小不正确
- qt - 如何在 yocto 配方中添加 qt5 应用程序?
- python - 将每个 sas 数据集转换为 pandas 中的数据框
- r - alias() 不返回任何内容,而 vif() 在 R 中返回 NAN
- java - 如何修复税率操作?
- javascript - javascript - 遍历 ViewBag 列表
- python - 对数据框的行进行分组/过滤和计算