私は次のように設定しています: UITableView があり、その中に PBDetailsCell というカスタム セルを設定しています。
PBDetailsCell には、LeftLabel と RightLabel の 2 つのラベルが含まれています。右ラベル内にボタンを設定しています。ボタンが PBDetailsCell の右ラベルで押されたときに、UITableView で設定された buttonPressed: メソッドを呼び出したいと思います。
現在このコードを書いていますが、buttonPressed が呼び出されていないようです...
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{ PBDetailsCell *cell = (PBDetailsCell *) [tableView dequeueReusableCellWithIdentifier:[PBDetailsCell reuseIdentifier]];
if(cell==nil){
[[NSBundle mainBundle] loadNibNamed:@"PBDetailsCell" owner:self options:nil];
cell=_detailCell;
_detailCell=nil;
}
cell.leftLabel.text = @" Action";
UIImage* img = [UIImage imageNamed:@"action.png"];
UIButton* but = [[UIButton alloc] initWithFrame:CGRectMake(0, 5, cell.rightLabel.frame.size.width-20, cell.rightLabel.frame.size.height-10)];
[but addTarget:self action:@selector(btnPressed:) forControlEvents: UIControlEventTouchUpInside];
[but setImage:img forState:UIControlStateNormal];
[cell.rightLabel addSubview:but];
}
- (void)btnPressed:(id)sender
{ NSLog(@"Button pressed");}