我必须在表格行中循环输出3个按钮,按下时它将重定向到相关的详细信息. 问题是如何识别用户点击的按钮?我尝试过setAccessibilityLabel和setValue forKey,但两者都不起作用. 您需要在CustomRo
问题是如何识别用户点击的按钮?我尝试过setAccessibilityLabel和setValue forKey,但两者都不起作用.
您需要在CustomRow类中使用委托.在CustomRow.h文件中:
@protocol CustomRowDelegate; @interface CustomRow : NSObject @property (weak, nonatomic) id <CustomRowDelegate> deleagte; @property (assign, nonatomic) NSInteger index; @property (weak, nonatomic) IBOutlet WKInterfaceButton *button; @end @protocol CustomRowDelegate <NSObject> - (void)didSelectButton:(WKInterfaceButton *)button onCellWithIndex:(NSInteger)index; @end
在CustomRow.m文件中,您需要在IB中添加连接到按钮的IBAction.然后处理这个动作:
- (IBAction)buttonAction { [self.deleagte didSelectButton:self.button onCellWithIndex:self.index]; }
在配置行的方法中的YourInterfaceController.m类中:
- (void)configureRows { NSArray *items = @[*anyArrayWithData*]; [self.tableView setNumberOfRows:items.count withRowType:@"Row"]; NSInteger rowCount = self.tableView.numberOfRows; for (NSInteger i = 0; i < rowCount; i++) { CustomRow* row = [self.tableView rowControllerAtIndex:i]; row.deleagte = self; row.index = i; } }
现在您只需要实现您的委托方法:
- (void)didSelectButton:(WKInterfaceButton *)button onCellWithIndex:(NSInteger)index { NSLog(@" button pressed on row at index: %d", index); }