WKInterfaceTable не создает строки
Я пытаюсь создать простое приложение 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()
}
}
Вот несколько экранов из Интерфейсного Разработчика и вывод:
1 ответ
Замените следующий код, он работает для меня:
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) имеетIBOutlet
в вашемTaskTableRowController
,TaskTableRowController
идентификатор установлен в "TaskRow".WKInterfaceTable
(taskList) имеет IBOutlet.Пользовательский класс для вашей строки TaskTableRowController установлен.
Надеюсь, это поможет вам!
Дайте мне знать, если у вас есть запрос.