[英]Swift Package Manager: How to load a UIViewController + xib pair like in a regular Xcode project?
In a regular iOS Xcode project, when you create a Cocoa touch file ( MyVC.swift
), you can also create an associated xib ( MyVC.xib
). 在controller視圖中調用super.init(nibName: nil, bundle: nil)
,就可以使用outlets了。
在這種情況下,我嘗試將項目中的代碼移植到 Swift Package 中,這將在其他項目中重復使用。 在 Swift Package 中時,我找不到為我的視圖 controller 加載 xib 的方法。 在正確連接所有內容並調用super.init(nibName:bundle:)
后,在viewDidLoad
時插座仍然始終nil
。
這在 Swift Package 中是否可行? 如果是,如何; 如果沒有,是否有任何替代方案? 這感覺像是一個非常標准的用例。
Fwiw,我使用的是 swift-tools-version 5.3,我的平台是.iOS(.v13)
我嘗試過的各種init
:
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))
經過數小時的研究無濟於事,我發現了以下Swift 論壇提案,這使我得到了答案:
super.init(nibName: nil, bundle: .module)
我一直在尋找“模塊”包:它“返回與當前 Swift 模塊關聯的資源包。”
使用后,我的 xibs/Storyboards 加載正確。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.