从自定义框架访问故事板不起作用

Accessing storyboard from custom framework not working

您好,我必须在应用程序委托中从自定义框架(LoginUIModule,LoginUIModule 具有故事板 LoginScreen.storyboard)访问故事板。 我从主界面中删除了主情节提要,还从主情节提要文件基本名称以及 .plist 中删除了名称,但出现错误

原因:'在包 NSBundle

中找不到名为 'LoginScreen' 的故事板

注意:- LoginUIModule 是单独的模块,我需要在我的主 (OneAppllbs) 项目中访问它,它又是一个单独的项目模块

我在app delegate中使用的代码

import LoginUIModule

 self.window = UIWindow(frame: UIScreen.main.bounds)
    let storyboard = UIStoryboard(name: "LoginScreen", bundle: nil)
    let initialViewController = storyboard.instantiateViewController(withIdentifier: "LoginUIModuleViewController") as? LoginUIModuleViewController
    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

您需要设置 Bundle 才能访问 Storyboard。

首先使用 Bundle Identifier 为框架创建 storyboardBundle;

let storyboardName = "LoginScreen"
let storyboardBundle = Bundle(for: LoginUIModuleViewController.self)

或在框架中引用 class:

let storyboardBundle = Bundle(identifier: "com.yourframework.id")

然后用这个包创建故事板:

let storyboard = UIStoryboard(name: storyboardName, bundle: storyboardBundle)

从框架获取故事板

.storyboard 设置 Storyboard ID。例如 frameworkStoryboardId

[Access to Framework bundle]

let frameworkStoryboard = UIStoryboard(name: "SomeViewController", bundle: frameworkBundle)

let frameworkViewController = frameworkStoryboard.instantiateViewController(withIdentifier: "frameworkStoryboardId") as? SomeViewController