WKInterfaceTable不创建行

问题描述:

我正在尝试用表创建一个简单的WatchKit应用程序。每一行都有一个标签。这是我的TableRowController类:WKInterfaceTable不创建行

import WatchKit 

class TaskTableRowController: NSObject { 

    @IBOutlet var taskName: WKInterfaceLabel! 
} 

在我InterfaceController,我行添加到我的表并尝试设置标签的文本。但是,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

你检查下面的代码它适用于我。 –

替换下面的代码,它为我:

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(TASKNAME)在您 TaskTableRowControllerIBOutlet

  • TaskTableRowController标识符设置为 为'TaskRow'。

  • WKInterfaceTable(taskList)有一个IBOutlet。

  • 设置了行'TaskTableRowController'的自定义类。

希望它可以帮助你!

如果您有任何疑问,请告诉我。