Как удалить окна из UIApplication в Swift - PullRequest
0 голосов
/ 30 августа 2018

При нажатии на кнопку я перехожу к другому контроллеру представления, используя следующий код.

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)

Ответы [ 3 ]

0 голосов
/ 30 августа 2018

Вы должны использовать View Controller вместо добавления окон и вставлять его вместо того, где вы удаляете окно. Окно является только одним объектом для приложения и будет содержать представления. Пожалуйста, исправьте ваше понимание и используйте контроллеры View.

0 голосов
/ 03 сентября 2018

В приведенном ниже коде windowz это обычный массив.

let windowz = UIApplication.shared.windows 

Вы можете удалить последнее с помощью

windowz.removeLast()
0 голосов
/ 30 августа 2018

Я думаю, вы неправильно поняли навигацию в iOS. Окно похоже на корневой объект, в котором появляются ViewControllers. Поэтому, вероятно, решение, которое вы ищете в первую очередь, - UINavigationController.

Документация Apple по навигации

...