DCD*_*CDC 23 uiviewcontroller ios appdelegate swift
我在我的应用程序中进行了演练(入门流程),我想要一个跳过按钮.该按钮位于viewController上,因此我发现移动到另一个viewController的最佳方法是访问app delegate窗口.
但是,它一直让我得到一个AppDelegate.Type没有名为"window"的成员的错误.
@IBAction func skipWalkthrough(sender: AnyObject) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
AppDelegate.window!.rootViewController = RootViewController
}
Run Code Online (Sandbox Code Playgroud)
这种方法有什么问题吗?
提前致谢!
Ste*_*tic 49
你有一个错字,它应该appDelegate不是AppDelegate.像这样:
@IBAction func skipWalkthrough(sender: AnyObject) {
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
appDelegate.window!.rootViewController = RootViewController
}
Run Code Online (Sandbox Code Playgroud)
Swift 3.2
@IBAction func skipWalkthrough(_ sender: AnyObject) {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.window!.rootViewController = controller
}
Run Code Online (Sandbox Code Playgroud)
Das*_*oga 18
Swift 3+
let appDelegate = UIApplication.shared.delegate as? AppDelegate
let mainStoryboard = UIStoryboard(name: "Main", bundle: nil)
let homeController = mainStoryboard.instantiateViewController(withIdentifier: "HomeViewController") as! HomeViewController
appDelegate?.window?.rootViewController = homeController
Run Code Online (Sandbox Code Playgroud)
Ted*_*ery 10
斯威夫特3
这是一种更好的方法:
if let window = NSApplication.shared().windows.first {
window.acceptsMouseMovedEvents = true;
}
Run Code Online (Sandbox Code Playgroud)
Nik*_*ani 10
appDelegate.window!.rootViewController在Swift 5中不工作
这是工作代码
添加以下扩展名
extension UIWindow {
static var key: UIWindow! {
if #available(iOS 13, *) {
return UIApplication.shared.windows.first { $0.isKeyWindow }
} else {
return UIApplication.shared.keyWindow
}
}
}
Run Code Online (Sandbox Code Playgroud)
使用
let mainSB = UIStoryboard(name: "Main", bundle: nil)
if let RootVc = mainSB.instantiateViewController(withIdentifier: "NavigationController") as? UINavigationController{
UIWindow.key.rootViewController = RootVc
}
UIWindow.key // to access only window
Run Code Online (Sandbox Code Playgroud)
您还可以使用条件绑定来访问window.
if let window = UIApplication.shared.windows.first {
// use window here.
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34253 次 |
| 最近记录: |