swift - 如何从嵌入式视图中获取视图的背景颜色
问题描述
并提前感谢您的帮助。
我有一个要加载到多个 ViewController 中的嵌入式视图。这工作正常。当我尝试获取主视图的背景颜色时,问题就来了。 图片是VC设置
所以我尝试了各种方法。我考虑过使用 userDefaults 并在主 VC 加载时保存颜色,并从嵌入式 VC 中的 userDefaults 获取颜色,但这感觉有点像 hack。
下面的代码显然只会获得嵌入式 VC 中视图的颜色。我想一定要去检查superview之类的吗?
if self.view.backgroundColor!.isEqual(UIColor.White) {
print("Background is White")
} else {
print("not White")
}
我希望这是有道理的。再次感谢您的任何启发。
解决方案
如果它是根,你可以试试这个
if let roo = (UIApplication.shared.delegate as! AppDelegate).window?.rootViewController {
print(roo.view.backgroundColor)
if roo.view.backgroundColor == .white {
print("Yes")
}
else {
print("No")
}
}
如果不是,您还可以创建一个委托,例如
class ChildVC: UIViewController {
weak var delegate:ParentVC?
}
和viewDidLoad
父母的
if let fir = self.children.first as? ChildVC {
fir.delegate = self
}
之后,您可以使用
delegate?.view.backgroundColor
推荐阅读
- azure - 执行繁重处理的 Azure Logic App?
- reactjs - 文本字符串必须在
零件 - python - 如何使用函数将新键和值附加到列表字典中
- bash - 这是什么意思?
- codeigniter - CodeIgniter:您尝试上传的文件类型是不允许的。isset($this->_mimes[$ext]) 始终为空
- python - 使用 Python 读取大量图像数据并将其转换为 Numpy 数组
- git - git revert issue with merge strategy (theirs)
- vb.net - TCP 侦听器的消息缓冲区
- javascript - javascript在调用函数之前分配变量
- python - UberPool 票价比 UberX 贵?