当我单击一个按钮时,我试图找到 UITableViewCell 的 IndexPath,它看起来并不容易,因为我也在使用 UIAlert。这是我正在使用的代码:
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UpdatesTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray* views = [[NSBundle mainBundle] loadNibNamed:@"UpdatesTableViewCell" owner:nil options:nil];
for (UIView *view in views) {
if([view isKindOfClass:[UITableViewCell class]])
{
cell = (UpdatesTableViewCell*)view;
}
}
}
cell.textLabel.text = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"Title"];
cell.detailTextLabel.text = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"Description"];
//////////This button is the one sending the action////////////////
[cell.deletebutton addTarget:self action:@selector(deletetherow:) forControlEvents:UIControlEventTouchUpInside];
imagepath = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"Photo"];
if([imagepath isEqualToString:@"(null)"])
{
cell.imageView.image = [UIImage imageNamed:@"noimage.png"];
cell.imageView.contentMode = UIViewContentModeScaleAspectFill;
cell.imageView.clipsToBounds = YES;
}
else {
cell.imageView.image = [[[UIImage alloc] initWithContentsOfFile:imagepath] autorelease];
}
cell.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
return cell;
}
- (void)deletetherow:(id)sender{
UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"Title"
message:@"Delete it ?"
delegate:self
cancelButtonTitle:@"Cancel"
otherButtonTitles:@"delete", nil];
[message show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *title = [alertView buttonTitleAtIndex:buttonIndex];
if([title isEqualToString:@"Eliminar"])
{
NSLog(@"OFFLINE");
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"datatesting.plist"];
libraryContent = [[NSMutableArray alloc] initWithContentsOfFile:path];
[libraryContent removeObjectAtIndex:0]; ///// Here instead 0, I want to put the indexpath to know what row content to delete.
NSLog(@"delete the Row:%@",libraryContent);
[libraryContent writeToFile:path atomically:YES];
dao = [[Dfetch alloc] initWithLibraryName:@"Diario"];
[self.tableviewnew reloadData];
}
}
}
所以我的问题是,如何在 alertView 方法中获取 indexpath.row ?