从自定义框架访问故事板不起作用
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
您好,我必须在应用程序委托中从自定义框架(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