Joh*_*ing 6 xcode ios swift swift-package-manager
在常规的 iOS Xcode 项目中,当您创建 Cocoa touch 文件 ( MyVC.swift) 时,您还可以创建关联的 xib ( MyVC.xib)。调用super.init(nibName: nil, bundle: nil)视图控制器,然后插座就可以使用了。
在本例中,我尝试将项目中的代码移植到 Swift 包中,该包将在其他项目中重用。在 Swift 包中时,我找不到为视图控制器加载 xib 的方法。正确连接所有设备并致电 后super.init(nibName:bundle:),插座仍始终nil处于 的时间viewDidLoad。
这在 Swift 包中可能吗?如果是这样,怎么办?如果没有,有什么替代方案吗?这感觉像是一个非常标准的用例。
Fwiw,我使用的是 swift-tools-version 5.3,我的平台是.iOS(.v13)
init我尝试过的各种s:
super.init(nibName: nil, bundle: nil)super.init(nibName: nil, bundle: .main)super.init(nibName: "\(Self.self)", bundle: .main)super.init(nibName: nil, bundle: .init(for: Self.self))super.init(nibName: "\(Self.self)", bundle: .init(for: Self.self))Joh*_*ing 13
经过几个小时的研究无果后,我发现了以下Swift 论坛提案,这让我得到了答案:
super.init(nibName: nil, bundle: .module)
“模块”包就是我正在寻找的:它“返回与当前 Swift 模块关联的资源包”。
使用此后,我的 xibs/Storyboards 正确加载。
| 归档时间: |
|
| 查看次数: |
1532 次 |
| 最近记录: |