2016-09-15 5 views
1

Я пытаюсь создать простое приложение 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

вы проверяете код ниже Он работает для меня. –

ответ

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") 
     } 
    } 

Я видел снимки экрана, но пл. Перекрестная проверка & Убедитесь ниже пунктов:

  • WKInterfaceLabel(TASKNAME) имеет в своем TaskTableRowController в IBOutlet.

  • TaskTableRowController Идентификатор установлен в «TaskRow».

  • WKInterfaceTable(taskList) имеет IBOutlet.

  • Пользовательский класс для вашей строки «TaskTableRowController» установлен.

Надеюсь, это поможет вам !!!

Дайте мне знать, если у вас есть какие-либо вопросы.

Смежные вопросы