在单击按钮的同时,我正在使用以下代码移至另一个视图控制器。
var window: UIWindow?
window = UIWindow.init(frame: UIScreen.main.bounds)
window?.autoresizesSubviews = true
window?.autoresizingMask = [.flexibleWidth, .flexibleHeight]
let trackingViewController = LoginCameraViewController.init(screen:
.main)
window?.rootViewController = trackingViewController
window?.addSubview((trackingViewController?.view)!)
window?.makeKeyAndVisible()
window?.layoutSubviews()
每单击一次按钮,都会向应用程序添加一个新窗口。我要删除添加的最新窗口。 使用以下代码可以知道应用程序中存在的窗口数。
let windowz = UIApplication.shared.windows
print("subviews",windowz)
答案 0 :(得分:1)
我认为您在iOS中的导航概念不正确。 Window就像其中出现ViewController的根对象。因此,您首先寻找的解决方案可能是UINavigationController
。
答案 1 :(得分:1)
您应该使用View Controller而不是添加窗口,并在要删除窗口的位置将其弹出。 窗口只是应用程序的一个对象,将包含视图。 请更正您的理解并使用View控制器。
答案 2 :(得分:0)
对于iOS 13,我可以通过这种方式实现
我创建了一个数组,其中包含用来显示此新viewController的窗口,
var arrWindow = [UIWindow]()
arrWindow.append(yourNewWindow)
//注意:这将作为强大的参考存储,因此需要将其删除。
还将原始窗口存储在变量
中let originalWindow = yourOriginalWindow
//注意:对此同样适用,它将存储为强引用,因此需要将其删除。
在删除时,有很多方法可以完成,但这对我来说是最合适的方法,
func removeAppendedWindow() {
for window in arrWindow {
if window != originalWindow {
if let index = arrWindow.index(of: window) {
window.isHidden = true
arrWindow.remove(at: index)
}
}
}
}
答案 3 :(得分:-1)
在下面的代码窗口中,z是普通数组。
^(?!.* )(?!.*[<>%:&\\])(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[^a-zA-Z0-9<>%:&\\]).{8,256}$
您可以使用
删除最后一个let windowz = UIApplication.shared.windows