通过子视图从故事板以编程方式实例化 UIViewController

问题描述 投票:0回答:2

我正在将应用程序从 Storyboards 和 UIKit 迁移到 SwiftUI。这是一个很大的应用程序,所以我正在分阶段进行。具体来说,我使用 UIViewControllerRepresentable 在 SwiftUI 中嵌入一些旧的 UIKit 资产。

我正在使用

从故事板加载 UIViewController
let storyboard = UIStoryboard(name: "MainStoryboard", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "MyViewController") as! MyViewController

这工作正常,只是实例化的 MyViewController 不包含故事板/界面生成器中存在的子视图。有没有办法用子视图实例化视图控制器?

ios storyboard interface-builder
2个回答
0
投票

我想我已经明白了。这里有两个问题:

  1. 子视图不可见,因为布局弄乱了(我的错)。
  2. 导航项和工具栏项也没有显示。但这是一个完全不同的问题。请参阅:UIViewControllerRepresentable:NavigationView 中忽略的导航标题和栏按钮项目

-1
投票

验证:

  1. 故事板的名称正确吗?
  2. 视图控制器的标识符是否正确?
  3. 确保您的代码/类和 UI/VC 已链接。
  4. 与模块相关的复选框已选中(在故事板中的类属性下)。

如果四者中任何一个没有完成完美,你的代码肯定会崩溃。

但是,如果您遇到的是黑色的 VC UI,则可能是您从不正确的 Storyboard 访问 VC。

特别:

let storyboard = UIStoryboard(name: "Main", bundle: nil)

© www.soinside.com 2019 - 2024. All rights reserved.