iOS13中具有多个窗口场景的***视图控制器

Posted

技术标签:

【中文标题】iOS13中具有多个窗口场景的***视图控制器【英文标题】:Top most view controller with multiple window scenes in iOS13 【发布时间】:2019-07-17 12:37:06 【问题描述】:

我正在使我的应用程序在 iPadOSios 13 上使用多个窗口,据我所知,我无法直接访问 UIApplication 窗口,因为它是弃用,如何获得最顶层的视图控制器?

直到iOS12我使用这个可行的解决方案,你能推荐一个替代方案吗?

+(UIViewController *)topMostViewController

    UIViewController *vc = [[UIApplication sharedApplication].delegate.window rootViewController];
    while(vc.presentedViewController)
    
        vc = vc.presentedViewController;
    
    return vc;

【问题讨论】:

这能回答你的问题吗? How get current keywindow equivalent for multi window SceneDelegate Xcode 11? 不完全,因为我一直在学习它总是对用户更好view.window 【参考方案1】:

见:How get current keywindow equivalent for multi window SceneDelegate Xcode 11?

已弃用: 你试过Application.shared.keyWindow?.rootViewController吗? keyWindow(或者mainWindow,如果你喜欢的话)是这里的重要部分。

【讨论】:

keyWindow 在 iOS 13 中已弃用

以上是关于iOS13中具有多个窗口场景的***视图控制器的主要内容,如果未能解决你的问题,请参考以下文章

iOS 中常见场景的根视图控制器问题

使用相同背景图像的具有多个场景的视图控制器 (UIViewController) 情节提要

IOS Interface Builder - 在单个视图控制器场景中管理多个视图

iOS、iPad - 具有相同主视图控制器和详细视图控制器的多个拆分视图控制器

具有多个视图控制器的 iOS 应用

如何关闭已呈现未推送的多个视图控制器?