【发布时间】:2017-09-29 14:14:42
【问题描述】:
这几天我一直在尝试解决这个问题,但运气不佳:(
我想要做的是在另一个 ViewController 中已经存在的 XIB 实例(称为 BottomNav)中设置变量,称为“curX”。我最接近以下内容:
class Util: NSObject {
class func loadNib() {
let nib: BottomNav = Bundle.main.loadNibNamed("BottomNav", owner: self, options: nil)!.first as! BottomNav
nib.curX = 10
}
}
这是 BottomNav 类:
class BottomNav: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var homeBtn: UIView!
@IBOutlet weak var scroller: UIScrollView!
@IBOutlet weak var scrollerContent: UIView!
var curX = 32
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
Bundle.main.loadNibNamed("BottomNav", owner: self, options: nil)
self.addSubview(self.view)
}
}
这会在没有警告的情况下通过编译器,但是当它运行时,我会收到“此类与键的键值编码不兼容”错误。当有一个不再存在的插座时,通常会出现这种情况,但绝对不是这种情况,我已经使用应用程序上已经存在的多个 XIB 对其进行了测试,并且首先通过情节提要加载没有问题。我只收到“loadNibNamed”这个错误。
我在这里走对了吗?我的想法是我的 Util 类可能无法访问 Bundle 或其他东西?
【问题讨论】:
-
尝试检查该 xib 中已连接的 iboutlet 并从该 xib 中删除未连接的连接。
-
正如我所提到的,这绝对是,100% 不是问题。它已经过检查,双重检查,在多个 XIB 上尝试过。它甚至在通过情节提要完成时第一次加载而没有问题。
-
您能在此处添加您的 BottomNav 类吗?
-
刚刚添加。