Could not load Nib in bundle - Wrong nibname in error
我正在尝试推送使用xib文件初始化的ViewController的视图。为此,我正在调用控制器的初始化程序,该控制器将自己称为
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: [...] with name 'BYZ-38-t0r-view-x4c-fw-L1g'
错误中的笔尖名称与初始化调用中提供的笔尖名称不匹配。
这是我的代码:
ViewController声明/初始化
1 2 3 | let connexionViewController = ConnexionViewController() self.view.addSubview(connexionViewController.view) // Exception thrown on this line |
ViewController代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | import Foundation import UIKit class ConnexionViewController: UIViewController { @IBOutlet var validateButton: UIButton! @IBOutlet var usernameTextField: UITextField! required init(coder: NSCoder) { super.init(coder: coder) } override init() { super.init(nibName:"ConnexionViewController", bundle: nil) } override init(nibName nibNameOrNil: String!, bundle nibBundleOrNil: NSBundle!) { super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil) } override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } |
xib文件的名称与提供给初始化程序的字符串匹配,并且xib被添加到实际目标的构建阶段。
1 | ViewController * pvc = [[ViewController alloc]initWithNibName:NSStringFromClass([ViewController class]) bundle:nil]; |
我正以这种方式加载笔尖以避免字符串。
反过来,这开始为混合和匹配的现有objC项目添加快速兼容性时,将笔尖名称返回为
要对此进行排序,请使用以下类型的代码或执行字符串processig来裁剪字符串,直到
1 | ViewController * pvc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil]; |
希望这对以后的人有帮助。
当按下新控制器时,导航控制器似乎未完全初始化。我更改了通话的位置,现在可以正常使用了。