Swift初始化ViewController来自Xib文件错误

时间:2018-01-05 19:34:09

标签: ios swift uiviewcontroller xib nib

使用Xcode 8.2Swift 2.3

我有一个视图控制器文件namVcc.swift和namVccUI.xib

我正在尝试从xib文件初始化视图控制器但是收到错误

| * |试试1:

let namVccVar = UINib(nibName: "namVccUI", bundle:
    nil).instantiateWithOwner(nil, options: nil)[0] as! namVcc

navigationController?.pushViewController(namVccVar, animated: true)

| * |试试2:

let namVccVar = namVcc(nibName: "namVccUI", bundle: nil)

navigationController?.pushViewController(namVccVar, animated: true)
  

错误:由于未捕获的异常'NSInternalInconsistencyException'而终止应用程序,原因:'无法在bundle中加载NIB:'NSBundle(已加载)',名称为'namVccUI'

我还检查了xib文件的属性>目标会员资格并且已经过检查。

还有什么问题?

1 个答案:

答案 0 :(得分:1)

当我尝试设置时,我得到一个类似但略有不同措辞的错误。我得到了

  

由于未捕获的异常而终止应用   'NSInternalInconsistencyException',原因:' - [UIViewController   _loadViewFromNibNamed:bundle:]加载了“namVccUI”笔尖,但未设置视图插座。'

当我用Try 2中的代码和一个新的,干净的.xib文件创建一个空项目时。我必须在.xib文件中明确地将UIView的引用插座设置为文件所有者,并且我必须确保.xib中文件所有者的自定义类设置为namVcc。我永远无法让Try 1工作。