我已经创建了一个框架,该框架的 View Controller 名为“AuthenticationViewController.h”, Nib 为“AuthenticationViewController.xib”。用于测试的示例项目已用于呈现AuthenticationViewController。
在Objective-C
中:
NSString *frameworkDirPath = [[NSBundle mainBundle] privateFrameworksPath];
NSString *frameworkBundlePath = [frameworkDirPath stringByAppendingPathComponent:@"xxx.framework"];
NSBundle *frameworkBundle = [NSBundle bundleWithPath:frameworkBundlePath];
AuthenticationViewController *authenticationViewController = [[AuthenticationViewController alloc]initWithNibName:@"AuthenticationViewController" bundle:frameworkBundle];
authenticationViewController.delegate = self;
[self presentViewController:authenticationViewController animated:YES completion:nil];
这对我来说很好。
但是当我在
Swift
中使用以下代码时:let frameworkBundle = NSBundle(identifier: "xxx")
let authViewControler :AuthenticationViewController = AuthenticationViewController.init(nibName: "AuthenticationViewController", bundle: frameworkBundle)
authViewControler.delegate = self
self.presentViewController(authViewControler, animated: true, completion: nil)
该应用程序崩溃并显示以下错误:-
最佳答案
NSBundle(identifier: "SendOTPFramework")
,不是NSBundle(path: <#T##String#>)
?您确定有一个可用的标识符吗?您在不同的语言中使用了不同的功能。