gpt4 book ai didi

objective-c - 如何获取 Root View Controller ?

转载 作者:IT老高 更新时间:2023-10-28 11:19:45 29 4
gpt4 key购买 nike

我需要一个 Root View Controller 的实例。

我尝试了这些方法:

UIViewController *rootViewController = (UIViewController*)[[[UIApplication sharedApplication] keyWindow] rootViewController];

返回:null:

当我尝试获取 Controller 数组时:

NSArray *viewControllers = self.navigationController.viewControllers;

它只返回一个 Controller ,但它不是我的 Root View Controller 。

如果我尝试从导航 Controller 中获取:

UIViewController *root = (UIViewController*)[self.navigationController.viewControllers objectAtIndex:0];

返回:null:

任何想法为什么?我还能尝试获取 Root View Controller 的实例吗?

谢谢。

最佳答案

如果您尝试访问您在 appDelegate 中设置的 rootViewController。试试这个:

Objective-C

YourViewController *rootController = (YourViewController*)[[(YourAppDelegate*)
[[UIApplication sharedApplication]delegate] window] rootViewController];

swift

let appDelegate  = UIApplication.sharedApplication().delegate as AppDelegate
let viewController = appDelegate.window!.rootViewController as YourViewController

swift 3

let appDelegate  = UIApplication.shared.delegate as! AppDelegate
let viewController = appDelegate.window!.rootViewController as! YourViewController

Swift 4 和 4.2

let viewController = UIApplication.shared.keyWindow!.rootViewController as! YourViewController

Swift 5 & 5.1 & 5.2

let viewController = UIApplication.shared.windows.first!.rootViewController as! YourViewController

关于objective-c - 如何获取 Root View Controller ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12418177/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com