2016-09-15 4 views
1

私はテーブルを使って簡単なWatchKitアプリケーションを構築しようとしています。各行にはラベルがあります。ここに私のTableRowControllerクラスです:私のInterfaceControllerでWKInterfaceTableが行を作成しない

import WatchKit 

class TaskTableRowController: NSObject { 

    @IBOutlet var taskName: WKInterfaceLabel! 
} 

、私は私のテーブルに行を追加し、ラベルのテキストを設定してみてください。しかし、taskList.rowController(at:0)は行を見つけられないので、Labelは変更されません。ここで

import WatchKit 
import Foundation 

class InterfaceController: WKInterfaceController { 

    @IBOutlet var taskList: WKInterfaceTable! 

    override func awake(withContext context: Any?) { 
     super.awake(withContext: context) 

     // Configure interface objects here. 
     taskList.setNumberOfRows(1, withRowType: "TaskRow") 
     if let x = taskList.rowController(at: 0) as? TaskTableRowController 
     { 
      x.taskName.setText("Hello World") 
     } 
    } 

    override func willActivate() { 
     // This method is called when watch view controller is about to be visible to user 
     super.willActivate() 
    } 

    override func didDeactivate() { 
     // This method is called when watch view controller is no longer visible 
     super.didDeactivate() 
    } 

} 

は、Interface Builderの出力からいくつかの画面です: Interface Builder Watch Simulator

+0

このチュートリアルをご覧くださいhttps://www.appcoda.com/selectable-table-watchkit/ – Dmitry

+0

@csstudent下記の回答を確認してください... –

+0

あなたは以下のコードをチェックしていますか? –

答えて

0

は、次のコードに置き換え、それは私の作品:

taskList.setNumberOfRows(10, withRowType: "TaskRow") 

    for index in 0..<taskList.numberOfRows { 
     if let controller = taskList.rowControllerAtIndex(index) as? TaskTableRowController { 
      controller.taskName.setText("Hello World") 
     } 
    } 

私はスクリーンショットが、PLを見てきました。クロスチェック&はポイント下回っていることを確認してください:

  • WKInterfaceLabel(タスク名)あなた TaskTableRowControllerIBOutletを持っています。

  • TaskTableRowController識別子が 'TaskRow'に に設定されています。

  • WKInterfaceTable(taskList)にはIBOutletがあります。

  • 「TaskTableRowController」行のカスタムクラスが設定されています。

ご希望ですか?

質問がある場合はお知らせください。

関連する問題