Ich habe ein Framework mit einem View-Controller namens "AuthenticationViewController.h" mit der Nib "AuthenticationViewController.xib" erstellt. Und ein zu testendes Beispielprojekt hat AuthenticationViewController vorgestellt. In Objective-C
:Wie man einen View-Controller aus einem externen Framework in Swift präsentiert?
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];
was für mich funktioniert.
Aber wenn ich folgenden Code in Swift
verwenden:
let frameworkBundle = NSBundle(identifier: "SendOTPFramework")
let authViewControler :AuthenticationViewController = AuthenticationViewController.init(nibName: "AuthenticationViewController", bundle: frameworkBundle)
authViewControler.delegate = self
self.presentViewController(authViewControler, animated: true, completion: nil)
Die App stürzt mit Fehler:? -
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with name 'AuthenticationViewController''
Ist der "Bezeichner" die Paketkennung des im Projekt enthaltenen Frameworks. Oder der Framework-Name enthalten. –
@HussainChhatriwala Die Bündel-ID des Frameworks. Sie können auch die Pfadfunktion in swift verwenden. – Lumialxk
Die oben genannten funktionierten in der Lage, den Controller zu öffnen. aber immer noch stürzt App nach wenigen Sekunden auf App Delegate ohne Absturzprotokolle ab. –