我正试图根据items变量的变化更新视图,但在didSet中cartView为nil
@IBOutlet weak var cartView: UIView!
var items = 0 {
didSet{
if items > 0 {
cartView.isHidden = false
} else {
cartView.isHidden = true
}
}
willSet{}
}
从tableviewcell更新此变量,如下所示--
'''
类ItemListingItemsTableViewCell:UITableViewCell{
@IBOutlet weak var itemTypeImage: UIImageView!
@IBOutlet weak var itemName: UILabel!
@IBOutlet weak var itemPrice: UILabel!
@IBOutlet weak var itemAdd: UIButton!
@IBOutlet weak var itemMinus: UIButton!
@IBOutlet weak var itemPlus: UIButton!
@IBOutlet weak var buttonsview: UIView!
**var itemVC = ItemListingViewController()**
@IBAction func addItemInitial(_ sender: Any) {
itemAdd.isEnabled = false
itemAdd.setTitle("1", for: .normal)
itemAdd.setTitleColor(UIColor.white, for: .normal)
itemMinus.isHidden = false
itemPlus.isHidden = false
itemVC.items = itemVC.items + 1
}'''
最佳答案
这是因为您在设置出口之前修改了count
。我修改了您的代码,检查cartView
是否cartView
+是否向cartView本身添加了一个观察者,因此一旦分配了出口,您的nil
将立即根据cartView
属性值更新其状态。
也请确保count
出口连接在您的XIB /故事板中。
@IBOutlet private weak var cartView: UIView! {
didSet {
updateCartViewVisibility()
}
}
var items = 0 {
didSet{
updateCartViewVisibility()
}
}
private func updateCartViewVisibility() {
guard cartView != nil else { return }
cartView.isHidden = items == .zero
}
关于ios - View 内部属性观察器抛出“意外发现nil,同时隐式展开一个可选值:文件”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58751392/