簡體   English   中英

自定義WKInterfaceTable行中的WKInterfaceLabel展開為nil

[英]WKInterfaceLabel in custom WKInterfaceTable row unwrapping to nil

標題總結了一下。 我嘗試斷開/重新連接所有IBOutlets。 這是我設置WKInterfaceTable的InterfaceController上的代碼:

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已正確連接。 情節提要上的行設置為UniversalRowView,並且兩個標簽的插座均已正確連接。

該行:

row.mainTitle.setText("Hello world")

引發以下錯誤: “致命錯誤:在展開可選值時意外發現nil”

另外,當我注釋掉該代碼時,在模擬器上看不到股票WKInterfaceLabels,因為它們出現在情節提要中。 我覺得這也是一個錯誤,但我不知道該怎么做。

編輯 :在willActivate()中調用setupLoadingTable()

我想到了! WKInterfaceTable和WKInterfaceLabel的視圖中似乎都存在一個名為“ 38mm Installed”的屬性。 問題是,我在42mm上運行模擬器, 但僅檢查了38mm

一旦檢查了兩個屬性,一切便按計划進行!

這是我所指的屏幕截圖:

在此處輸入圖片說明

我遇到了同樣的問題,對我來說,是因為我為WKInterfaceLabel title命名了IBOutlet,這也證明了NSObject中方法的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM