下面是示例代碼reffering @Mike斯旺森的回答
// ListRowController.swift file:
protocol rowButtonClicked {
func rowClicked(atIndex:Int)
}
class ListRowController: NSObject {
@IBOutlet var btnApply: WKInterfaceButton!
let delegate : rowButtonClicked? = nil
var rowNumber : Int = 0
@IBAction func applyTapped()
{
print(rowNumber)
self.delegate?.rowClicked(atIndex: rowNumber)
}
}
//in class containing table
dont forget to add delegate: rowButtonClicked
override func awake(withContext context: Any?)
{
super.awake(withContext: context)
listView.setNumberOfRows(customTones.count, withRowType: "availableAlarmList")
for index in 0..<listView.numberOfRows{
if let controller = listView.rowController(at: index) as? ListRowController {
controller.rowNumber = index
controller.delegate = self
}
}
func rowClicked(atIndex:Int) // delegate method which will give the row index
{
// do something here
}
}
輝煌!所以我在我的行控制器上創建了兩個新的屬性:1對持有該表的「委託」接口控制器的弱引用,以及保存行號的int。然後,交換機在行控制器中調用一個操作,該操作調用委託中的方法,傳入值和行號。 –
任何代碼示例? –