22 lines
2.0 KiB
Markdown
22 lines
2.0 KiB
Markdown
![]() |
#ios
|
|||
|
#unity
|
|||
|
|
|||
|
全称 `[UIApplication sharedApplication].keyWindow.rootViewController`
|
|||
|
|
|||
|
```
|
|||
|
在iOS开发中,[UIApplication sharedApplication].keyWindow.rootViewController 是一个用于访问当前应用程序的主窗口的根视图控制器的表达式。这里是对各个部分的详细解释:
|
|||
|
|
|||
|
[UIApplication sharedApplication]: 这是获取当前应用程序的单例实例。在iOS应用中,UIApplication类管理应用程序的事件循环和响应系统,包括处理触摸事件、远程通知等。通过调用sharedApplication类方法,你可以获得这个单例实例。
|
|||
|
.keyWindow: 这个属性返回当前应用程序的主窗口(UIWindow对象)。主窗口是应用程序用户界面的主要容器,它通常包含了应用程序的根视图控制器和其他视图。
|
|||
|
.rootViewController: 这个属性返回当前主窗口的根视图控制器(UIViewController的子类)。根视图控制器是管理主窗口内容的主要控制器,它负责呈现和管理应用程序的顶层视图和其他子视图控制器。
|
|||
|
|
|||
|
综合起来,[UIApplication sharedApplication].keyWindow.rootViewController 允许你访问并操作当前应用程序主窗口的根视图控制器,这是在进行视图管理、事件处理或自定义用户界面时非常常用的一个表达式。
|
|||
|
|
|||
|
需要注意的是,在iOS 13及以后的版本中,由于引入了新的UIScene和UIWindowScene概念,应用程序可能不再有一个单一的“主窗口”。在这些情况下,你可能需要通过不同的方式来获取当前活动的窗口或视图控制器。例如,你可能需要使用UISceneDelegate或UIWindowSceneDelegate来访问与特定场景相关联的窗口和视图控制器。
|
|||
|
```
|
|||
|
|
|||
|
unity打包成ios对应的xcode工程中,也是通过这个接口,获取到unity最外层的根窗口界面,然后可以,配合[[presentFromViewController]]的方式,完成视图界面的跳转和切换;
|
|||
|
|
|||
|
逻辑示例参考:
|
|||
|
|
|||
|
![[Pasted image 20241025100934.png]]
|