我試圖找到的UITableViewCell的IndexPath當我點擊一個按鈕,它doesn't看起來很容易,因爲我用的也是UIAlert。這我的代碼我使用:如何獲得indexpath?
// 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?
什麼是你'的tableView:didSelectRowAtIndexPath方法:'方法?你可以從那裏獲得indexpath.row。你能否顯示該代碼? :) –