当前位置: 首页 > 面试题库 >

如何获得根视图控制器?

唐高朗
2023-03-14
问题内容

我需要一个根视图控制器实例。

我尝试了这些方法:

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

返回: null

另外,当我尝试获取控制器数组时:

NSArray *viewControllers = self.navigationController.viewControllers;

它仅返回一个控制器,但不是我的根视图控制器。

如果我尝试从导航控制器中获取:

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

返回: null

有什么想法吗?我还能尝试获得根视图控制器的一个实例吗?

谢谢。


问题答案:

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

目标C

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

迅速

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

迅捷3

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

迅捷4和4.2

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

雨燕5&5.1&5.2

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


 类似资料:
  • 我需要修改我的代码,使它成为一个模型-视图-控制器。因为我是一个完全的编程新手,如果我诚实的话,我会头疼。任何帮助如何做到这一点将不胜感激。 *在一个牧场上有200只忙碌的绵羊。这群羊由95只白羊、60只黑羊和45只白黑羊组成。牧羊人现在想把它们分开,这样相应的羊毛就可以按颜色剪了。帮他写一个小脚本,这样他就可以更好地点他的羊了。请使用变量、数组、数学运算符和函数实现前三点。提示:为了更好地概述,

  • 以下的一段代码相当于定义一个ParameterizableViewController视图控制器的快捷方式,该控制器会立即将一个请求转发(forwards)给一个视图。请确保仅在以下情景下才使用这个类:当控制器除了将视图渲染到响应中外不需要执行任何逻辑时。 以下是一个例子,展示了如何在MVC Java编程配置方式下将所有"/"请求直接转发给名字为"home"的视图: @Configuration

  • 问题内容: 我正在尝试使用以下代码弹出到根视图控制器: 这通常可行,但是当当前视图是模式视图时,尝试使用此代码时出现错误。在这种情况下,我该如何跳回到根视图控制器? 提前致谢。 问题答案: 您可以检查当前控制器是否存在,如果存在,则将其关闭,然后直接转到当前控制器。

  • 我有以下代码: 在fxml文件中有一个对控制器类的引用。如何获取控制器对象? fxml:

  • 有没有办法在当前(子)中获取父VC的类名?我的'子'VC(推送)有两个'父',所以我想知道哪一个是当前的父?

  • 我有一个围绕JavaFXML和scenebuilder构建的简单的两个选项卡应用程序。这些选项卡目前什么都不做,因为我在尝试加载它们时无法通过null指针异常。 java和fxml文件安排在一个Netbeans项目中,如下所示: 主应用程序:应用程序主类MainApp。java设置场景并声明如下: MainController类为应用程序声明了两个选项卡,输入选项卡和帐户选项卡,以及一个用于关闭程