0

我正在尝试使用带有披露指示符的特定单元格来调出 a UIImagePicker(其他单元格有UITextFields,等等……)到目前为止,我只能用 a 来做到这一点UIButton。我想将我的动作连接到单元格,但我唯一的选择是创建新的转场。我该怎么做?

4

3 回答 3

1

如果您知道要点击的单元格的索引路径(它是列表中的第一个单元格或其他内容)。然后你可以使用:

-(void) tableview:(UITableView *)tableview didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.section == 0 && indexPath.row == 0) {
        // do some action
        [tableview deslectRowAtIndexPath:indexPath];
        [self someAction];
    }
}

您还需要将 cellForRowAtIndexPath 中的所有其他单元格设置为不响应点击事件。

于 2012-11-22T01:09:56.147 回答
1

如果您不想硬编码部分和行的索引,可以执行以下操作:

在 .h 文件中,使用 IB 创建 IBOutlets

@property (weak, nonatomic) IBOutlet UITableViewCell *upgradeAppCell;
@property (weak, nonatomic) IBOutlet UITableViewCell *spreadTheWordCell;
@property (weak, nonatomic) IBOutlet UITableViewCell *rateOnAppStoreCell;

在 .m 文件中:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];

    if (cell == upgradeAppCell)
    {
        [self upgradeApp];
    }
    else if (cell == spreadTheWordCell)
    {
        [self spreadTheWord];
    }
    else if (cell == rateOnAppStoreCell)
    {
        [self rateOnAppStore];
    }
}
于 2014-11-23T21:29:28.433 回答
0
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:  (NSIndexPath *)indexPath
{
   static NSString *identifier = @"identifier";
   YourCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
   if(!cell)
   {
       cell = /*Create your cell*/
       [cell.button addTarget:self action:@selector(didClickButton:)   forControlEvents:UIControlEventTouchUpInside];
   }

   cell.button.tag = [indexPath row];   

   return cell;
}

-(void)didClickButton:(UIButton *)button
{
    int row = button.tag
    /*Here you'll be able to know the button of which row has been clicked.*/
} 
于 2012-11-22T01:01:15.627 回答