Я создал фреймворк с контроллером вида с именем «AuthenticationViewController.h» с nib «AuthenticationViewController.xib». И образец проекта для тестирования использовался для представления AuthenticationViewController. В Objective-C
:Как представить контроллер просмотра из внешней структуры в быстром?
NSString *frameworkDirPath = [[NSBundle mainBundle] privateFrameworksPath];
NSString *frameworkBundlePath = [frameworkDirPath stringByAppendingPathComponent:@"SendOTPFramework.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: "SendOTPFramework")
let authViewControler :AuthenticationViewController = AuthenticationViewController.init(nibName: "AuthenticationViewController", bundle: frameworkBundle)
authViewControler.delegate = self
self.presentViewController(authViewControler, animated: true, completion: nil)
аварий приложение с ошибкой: -?
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with name 'AuthenticationViewController''
Является ли «идентификатор» идентификатором связки рамки, включенной в проект. Или имя фреймворка включено. –
@HussainChhatriwala Идентификатор связки рамки. Вы также можете использовать функцию пути в быстром режиме. – Lumialxk
Вышеприведенный способный открыть контроллер. но все же приложение получает сбой после нескольких секунд на делете приложения без каких-либо аварийных журналов. –