WKInterfaceTable 检测选择了哪一行
WKInterfaceTable detect which row selected
我只需要检查选择了哪一行来在 WKInterfaceController
之间传递数据。这是我的代码,但 NSLog 没有显示任何内容:
- (void)loadTableData {
NSArray* items = [NSArray arrayWithObjects:@"cell 1 ",@"cell2 ", @"cell 3",@"cell4",nil];
// Configure the table object (self.todoItems) and get the row controllers.
[self.myTable setNumberOfRows:items.count withRowType:@"DinoNameRow"];
NSInteger rowCount = self.myTable.numberOfRows;
// Iterate over the rows and set the label for each one.
for (NSInteger i = 0; i < rowCount; i++) {
// Get the to-do item data.
NSString* itemText = items[i];
// Assign the text to the row's label.
DinoNameRow* row = [self.myTable rowControllerAtIndex:i];
[row.dinoName setText:itemText];
}
}
- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {
switch (rowIndex) {
case 0:
NSLog(@"ROW 1");
break;
default:
break;
}
}
我在项目中使用的如下代码运行良好。
override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {
let string = data[rowIndex]
self.delegate?.didSeletStyle(style, string: string, index: rowIndex)
popController()
}
private func reloadTable() {
for i in 0 ..< table.numberOfRows {
let row = table.rowControllerAtIndex(i) as! tableRow
row.label.setText(data[i])
}
}
private func getData(style: Style) {
if style == .Friend {
data = ["a","b","c","d"]
}
table.setNumberOfRows(data.count, withRowType: "tableRow")
reloadTable()
}
确保...
- 您的
WKInterfaceTable
已通过 IBOutlet 连接到您的 Storyboard 元素。
- 您在 Storyboard 中设置了行控制器的 rowType 标识符:
- 您的行控制器的 Class 标识符在 Storyboard 中设置:
您已经覆盖了正确的 WKInterfaceController
方法:
override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {
}
我只需要检查选择了哪一行来在 WKInterfaceController
之间传递数据。这是我的代码,但 NSLog 没有显示任何内容:
- (void)loadTableData {
NSArray* items = [NSArray arrayWithObjects:@"cell 1 ",@"cell2 ", @"cell 3",@"cell4",nil];
// Configure the table object (self.todoItems) and get the row controllers.
[self.myTable setNumberOfRows:items.count withRowType:@"DinoNameRow"];
NSInteger rowCount = self.myTable.numberOfRows;
// Iterate over the rows and set the label for each one.
for (NSInteger i = 0; i < rowCount; i++) {
// Get the to-do item data.
NSString* itemText = items[i];
// Assign the text to the row's label.
DinoNameRow* row = [self.myTable rowControllerAtIndex:i];
[row.dinoName setText:itemText];
}
}
- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex {
switch (rowIndex) {
case 0:
NSLog(@"ROW 1");
break;
default:
break;
}
}
我在项目中使用的如下代码运行良好。
override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) {
let string = data[rowIndex]
self.delegate?.didSeletStyle(style, string: string, index: rowIndex)
popController()
}
private func reloadTable() {
for i in 0 ..< table.numberOfRows {
let row = table.rowControllerAtIndex(i) as! tableRow
row.label.setText(data[i])
}
}
private func getData(style: Style) {
if style == .Friend {
data = ["a","b","c","d"]
}
table.setNumberOfRows(data.count, withRowType: "tableRow")
reloadTable()
}
确保...
- 您的
WKInterfaceTable
已通过 IBOutlet 连接到您的 Storyboard 元素。 - 您在 Storyboard 中设置了行控制器的 rowType 标识符:
- 您的行控制器的 Class 标识符在 Storyboard 中设置:
您已经覆盖了正确的
WKInterfaceController
方法:override func table(table: WKInterfaceTable, didSelectRowAtIndex rowIndex: Int) { }