首页 文章

自定义WKInterfaceTable行中的WKInterfaceLabel展开为nil

提问于
浏览
1

Headers 总结了它 . 我已经尝试断开/重新连接所有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
    }
}

这是我的UniversalRowView的代码,它是我的自定义行类:

import WatchKit

class UniversalRowView: NSObject {

    @IBOutlet weak var mainTitle: WKInterfaceLabel!
    @IBOutlet weak var subTitle: WKInterfaceLabel!

}

表的IBOutlets已正确连接 . Storyboard上的行设置为UniversalRowView类型,并且两个标签的出口都已正确连接 .

这条线:

row.mainTitle.setText("Hello world")

抛出以下错误: "fatal error: unexpectedly found nil while unwrapping an Optional value"

此外,当我评论该代码时,我没有在模拟器上看到它们出现在故事板上的股票WKInterfaceLabels . 我觉得这也是一个错误,但我不知道该怎么做 .

Edit :在willActivate()中调用setupLoadingTable()

2 回答

  • 2

    我想到了!看起来WKInterfaceTable和WKInterfaceLabel的视图中都有一个名为"38mm Installed"的属性 . 问题是,我在42mm but I only had 38mm checked 上运行模拟器 .

    一旦我检查了两个属性,一切都按计划进行!

    这是我所指的截图:

    enter image description here

  • 5

    我遇到了同样的问题,对我而言,这是因为我为我的WKInterfaceLabel title 命名了IBOutlet,因为它在NSObject中也是一个方法的名称 .

相关问题