我正在用代码编写大部分watch app UI,并希望在加载时配置行控制器的IB属性,然后再使用rowController(at:)
访问它。
有简单的方法吗?所有IB属性在nil
处都是init()
,并且awakeFromNib()
在WatchKit中不适用于NSObject
。
答案 0 :(得分:0)
您的IBOutlets必须已经绑定到接口情节提要中使用的自定义表行类。在自定义行类中,您可以通过设置保留信息以显示的对象来更新界面控件。
class TableMainCellType: NSObject {
@IBOutlet weak var label:WKInterfaceLabel!
@IBOutlet weak var group:WKInterfaceGroup!
var item:MyTableItem? {
didSet{
label.setText(item?.title)
group.setBackgroundColor(item?.color)
}
}
}
要更新表单元格,我将在函数中进行迭代以更新InterfaceController中的表视图,如下所示。
// ...
for index in tableItems.indices{
if let row = self.table.rowController(at: index) as? TableMainCellType {
let item = tableItems[index]
row.item = item
}
}
// ...