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