iOS swiftDelegate 文件在添加代码时出现黑屏,请指导

Posted

技术标签:

【中文标题】iOS swiftDelegate 文件在添加代码时出现黑屏,请指导【英文标题】:iOS swiftDelegate file gives black screen on adding code, please guide 【发布时间】:2020-06-28 06:25:04 【问题描述】:

在 sceneDelegate 中,我在 willConnectTo 中使用以下代码,我得到了 navigationController 但根视图控制器是黑屏,我可以更改其背景颜色等但我看不到任何视图对象,如标签、表格等,

所以这就是我所做的,我删除了故事板,删除了需要从 plist 中删除的条目,然后我将代码添加到我的 sceneDelegate,目标为 ios 13,现在的目标是能够添加一个导航控制器,我可以用它来移动到其他视图控制器,在这种情况下,我使用一个 ViewController 文件,它默认作为我的 rootviewcontroller,

现在一切正常,导航栏也可见,但是……这就是问题所在,rootviewcontroller 没有显示任何子视图,如标签、表格等,只有黑屏,我可以改变它的颜色,但又不能向它添加任何子视图,

请指导,谢谢

guard let winScene = (scene as? UIWindowScene) else  return 
        let vc: ViewController = ViewController()
         let nc = UINavigationController(rootViewController: vc)
         let win = UIWindow(windowScene: winScene)
         win.rootViewController = nc
 win.makeKeyAndVisible()
 window = win

【问题讨论】:

【参考方案1】:

您只需要重新订购您的代码...

正如您在代码中看到的那样,您正在设置window 属性使其成为关键和可见性,您应该在之前进行设置。

此外,您还可以直接从您的 window 属性调用您的 makeKeyAndVisible() 方法。

试试这个:

guard let winScene = (scene as? UIWindowScene) else  return 
let vc: ViewController = ViewController()
let nc = UINavigationController(rootViewController: vc)
let win = UIWindow(windowScene: winScene)
win.rootViewController = nc
window = win
window.makeKeyAndVisible()

【讨论】:

以上是关于iOS swiftDelegate 文件在添加代码时出现黑屏,请指导的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS的静态库中添加xib文件

Flutter:在 pubspec.yaml 文件中添加仅适用于 iOS 的插件

iOS使用UIManagedDocument添加初始核心数据文件,而不是appdelegate

IOS - 文件添加触发事件 - 是不是可能

将本地化文件添加到新的 IOS 7 应用程序

我可以在 iOS 11 中通过 Storyboard 添加 PDFView