ios - 如何将视图添加到 UIWindow 以便将现有视图控制器向上推
问题描述
我正在处理没有互联网视图并试图实现Youtube ios 应用程序显示没有互联网视图。我能够在某种程度上复制它,但问题是没有 Internet 视图被添加到当前 UIWindow 中,它正在显示但作为子视图。当前视图控制器视图不会像在Youtube ios app中那样向上推。我也在 SO 中搜索了如何将它向上推,以便UIWindow的最后一个视图成为无互联网视图。人们建议将控制器作为rootViewController并将无互联网视图添加到其中。我做了同样的事情,但没有显示互联网视图,但视图控制器的其余部分是白色的。如何实现与youtube相同的机制?
以下是我目前的做法
if netStatus == .NotReachable {
print("The internet is down.")
noInternetView.removeFromSuperview()
noInternetView = NoInternetConnection(frame : CGRect(x: 0,y: self.window!.bounds.height - 15 ,width: self.window!.bounds.width,height: 15))
noInternetView.LabelErrorMessage.text = "No Connection"
noInternetView.LabelErrorMessage.backgroundColor = UIColor.black()
let window=UIApplication.shared().windows.last
window!.addSubview(noInternetView)
internetStatus = .NotReachable
}
else {
print("The internet is working!")
noInternetView.LabelErrorMessage.backgroundColor = UIColor(netHex : "#008000")
noInternetView.LabelErrorMessage.text = "Back online"
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(5) ) {
self.noInternetView.removeFromSuperview()
}
}
解决方案
推荐阅读
- json - 如何在 alamofire 中使用 JSON 元素
- swift - 如何设置文本字段大小修复macos swift
- c - 如何从用户那里获取输入整数,直到他使用 eof 按下回车键?
- c# - 当他们触摸按钮统一时,我如何让我的平台移动 90 度
- bazel - 我可以根据不同的 cc_binary 在 cc_library 中设置不同的宏值吗?
- dart - 颤动简单权限android版本比较和iOS path_provider错误
- java - 迭代列表对象中的日期变量并根据位置选择日期范围
- matlab - 如何在 MATLAB 中打印小圆圈?
- javascript - Chartjs 重叠区域的不同填充颜色
- ubuntu - 来自 Ubuntu 上 ubuntu 终端的 cmake-gui 显示:QXcbConnection:无法连接到显示已中止(核心转储)