如何在新窗口中推送ViewController

问题描述 投票:0回答:1

我需要通过代码在新窗口中按下viewController。我在执行以下代码,但无法正常工作。

let win = UIWindow(frame: UIScreen.main.bounds)
let nc = UINavigationController(rootViewController: self)
nc.view.backgroundColor = .clear
win.rootViewController = nc

win.windowLevel = UIWindow.Level.alert + 1
win.makeKeyAndVisible()

有人知道如何在新窗口中推送viewController吗?

ios uinavigationcontroller
1个回答
0
投票

Swift 5.x

下面的代码起作用

使用全局变量:

var window2 : UIWindow?

下面的修改代码

let win = UIWindow(frame: UIScreen.main.bounds)
let nc = UINavigationController()
nc.pushViewController(self, animated: true)
nc.navigationBar.isHidden = true
nc.view.backgroundColor = .clear
win.rootViewController = nc
window2 = win
win.windowLevel = UIWindow.Level.alert + 1
win.makeKeyAndVisible()

并关闭我在下面执行的新窗口

if let nc = window2?.rootViewController as? UINavigationController {
    nc.popViewController(animated: true)
}

window2?.resignKey()
window2 = nil

[注意:它没有显示推送和弹出默认动画,而是当前没有任何类型的动画。

Ref: To create a new UIWindow over the main window

© www.soinside.com 2019 - 2024. All rights reserved.