我正在尝试构建一个带有表的简单WatchKit应用程序。每一行都有一个标签。下面是我的TableRowController类:
import WatchKit
class TaskTableRowController: NSObject {
@IBOutlet var taskName: WKInterfaceLabel!
}在我的InterfaceController中,我向表中添加了一行,并尝试设置标签的文本。但是,taskList.rowController(at: 0)找不到行,因此标签是未修改的。
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的一些屏幕和输出:


发布于 2016-09-16 14:35:39
替换以下代码,它适用于我:
taskList.setNumberOfRows(10, withRowType: "TaskRow")
for index in 0..<taskList.numberOfRows {
if let controller = taskList.rowControllerAtIndex(index) as? TaskTableRowController {
controller.taskName.setText("Hello World")
}
}我已经看过屏幕截图了,但是。交叉检查并确保以下几点:
WKInterfaceLabel(taskName)在您的TaskTableRowController中有一个IBOutlet。TaskTableRowController标识符设置为'TaskRow'.WKInterfaceTable(taskList)为您的行设置了IBOutlet.希望它能对你有所帮助!
如果你有任何疑问,请告诉我。
https://stackoverflow.com/questions/39521583
复制相似问题