Я хотел бы удалить представление, которое я создал в приведенном ниже коде (окно keyWindow или v UIView).
Я пытался использовать тег .tag, который работает для просмотра, ноон не работает.
Чтобы объяснить назначение кода, он тестирует с Firebase, если есть подключение к интернету;если нет, то в середине экрана не отображается wifi gif;если да, no wifi gif должен исчезнуть (но не в моем случае).
Здесь он правильно показывает gif с окном (v), и когда он получает соединение, он пытается выполнить тест, чтобы удалить вид, ноон ничего не делает
Этот код должен работать на каждом контроллере uiview моего приложения (это моя цель), но сейчас я тестирую его с локальным функционалом на контроллере представления
EDIT: вот фиксированный код для интересующихся:)
func testconnection() {
DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2), execute: {
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
if let connected = snapshot.value as? Bool, connected {
print("Connected")
let window = UIApplication.shared.keyWindow!
let v = UIView(frame: CGRect(x: self.view.center.x-50, y: self.view.center.y-10, width: 100, height: 100))
v.backgroundColor = UIColor.black
v.tag = 100
print("Start testing to remove the view with correct tag")
if let viewWithTag = window.viewWithTag(100) {
print("yes, remove view")
viewWithTag.removeFromSuperview()
}else{
print("Not the correct tag / view not created")
}
}
else {
print ("Not connected")
SDWebImageCodersManager.sharedInstance().addCoder(SDWebImageGIFCoder.shared())
let window = UIApplication.shared.keyWindow!
let v = UIView(frame: CGRect(x: self.view.center.x-50, y: self.view.center.y-10, width: 100, height: 100))
window.addSubview(v);
let imageData = try? Data(contentsOf: Bundle.main.url(forResource: "noWifi1", withExtension: "gif")!)
let advTimeGif = UIImage.gifImageWithData(imageData!)
let imageView2 = UIImageView(image: advTimeGif)
imageView2.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
imageView2.tag = 100
v.addSubview(imageView2)
}
})
})
}