我如何在 Cocoa Touch Library 中使用故事板
How can i use storyboard in Cocoa Touch Library
我已经能够构建一个 Cocoa Touch 库,我打算将其用于在情节提要中呈现 ViewController,但事实证明我无法访问情节提要。我不断收到 NSInvalidArgumentException 错误,原因是:“找不到名为 'MyStoryboard'.
的故事板
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: Bundle.main)
viewController.present(cryptoTransactionViewController, animated: true, completion: nil)
在这里您可以从应用程序的主捆绑包访问情节提要 Bundle.main
并且肯定不存在,因此崩溃
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: Bundle.main)
您需要访问图书馆的捆绑包,所以尝试
let libBundle = Bundle(identifier:"com.library")
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle:libBundle)
您尝试访问的故事板不在您的 main
包中,它在框架的包中。
所以,您需要做的第一件事就是找到正确的捆绑包……
let bundleId = "com.your.bundle.id"
guard let bundle = Bundle.allFrameworks.first(where: { [=10=].bundleIdentifier == bundleId}) else {
fatalError("Failed to find bundle with identifier \(bundleId).")
}
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: bundle)
访问情节提要时,请确保包指向您正在处理的项目。
let bundleId = Bundle(identifier: "com.your.libraryBundle.id)
guard let bundle = Bundle.allFrameworks.first(where: { $0.bundleIdentifier == bundleId}) else {
致命错误("Failed to find bundle with identifier (bundleId).")
}
让故事板:UIStoryboard = UIStoryboard(名称:"MyLibraryStoryboard",捆绑:捆绑)
我已经能够构建一个 Cocoa Touch 库,我打算将其用于在情节提要中呈现 ViewController,但事实证明我无法访问情节提要。我不断收到 NSInvalidArgumentException 错误,原因是:“找不到名为 'MyStoryboard'.
的故事板let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: Bundle.main)
viewController.present(cryptoTransactionViewController, animated: true, completion: nil)
在这里您可以从应用程序的主捆绑包访问情节提要 Bundle.main
并且肯定不存在,因此崩溃
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: Bundle.main)
您需要访问图书馆的捆绑包,所以尝试
let libBundle = Bundle(identifier:"com.library")
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle:libBundle)
您尝试访问的故事板不在您的 main
包中,它在框架的包中。
所以,您需要做的第一件事就是找到正确的捆绑包……
let bundleId = "com.your.bundle.id"
guard let bundle = Bundle.allFrameworks.first(where: { [=10=].bundleIdentifier == bundleId}) else {
fatalError("Failed to find bundle with identifier \(bundleId).")
}
let storyboard: UIStoryboard = UIStoryboard(name: "MyStoryboard", bundle: bundle)
访问情节提要时,请确保包指向您正在处理的项目。
let bundleId = Bundle(identifier: "com.your.libraryBundle.id)
guard let bundle = Bundle.allFrameworks.first(where: { $0.bundleIdentifier == bundleId}) else { 致命错误("Failed to find bundle with identifier (bundleId).") } 让故事板:UIStoryboard = UIStoryboard(名称:"MyLibraryStoryboard",捆绑:捆绑)