Jus*_*der 1 ios swift watchkit wkinterfacetable wkinterfacelabel
标题总结了它.我已经尝试断开/重新连接所有IBOutlets.这是我在InterfaceController上设置WKInterfaceTable的代码:
func setupLoadingTable () {
self.myTable.setNumberOfRows(1, withRowType:"universalRowID")
for (var i = 0; i<self.myTable.numberOfRows; i++){
var row = self.myTable.rowControllerAtIndex(i) as! UniversalRowView
row.mainTitle.setText("Hello world") //THIS THROWS AN ERROR
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的UniversalRowView的代码,它是我的自定义行类:
import WatchKit
class UniversalRowView: NSObject {
@IBOutlet weak var mainTitle: WKInterfaceLabel!
@IBOutlet weak var subTitle: WKInterfaceLabel!
}
Run Code Online (Sandbox Code Playgroud)
表的IBOutlets已正确连接.Storyboard上的行设置为UniversalRowView类型,并且两个标签的出口都已正确连接.
这条线:
row.mainTitle.setText("Hello world")
Run Code Online (Sandbox Code Playgroud)
抛出以下错误:"致命错误:在解包可选值时意外发现nil"
此外,当我评论该代码时,我没有在模拟器上看到它们出现在故事板上的股票WKInterfaceLabels.我觉得这也是一个错误,但我不知道该怎么做.
编辑:在willActivate()中调用setupLoadingTable()
我想到了!似乎在WKInterfaceTable和WKInterfaceLabel的视图中都有一个名为"38mm Installed"的属性.问题是,我在42毫米运行模拟器,但我只检查了38毫米.
一旦我检查了两个属性,一切都按计划进行!
这是我所指的截图:

| 归档时间: |
|
| 查看次数: |
556 次 |
| 最近记录: |