作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
当用户在 UITableView
编辑模式下点击默认的 delete
按钮时,用户应该得到一个 alertview,如果他在 AlertView 中再次点击 Delete,该行应该被删除.最初,我在没有 AlertView 的情况下使用以下代码完成了此操作,并且运行良好。
[[self categoriesArray]removeObjectAtIndex:[indexPath row]];
NSArray *indexPathsToRemove = [NSArray arrayWithObject:indexPath];
[self.tableView deleteRowsAtIndexPaths:indexPathsToRemove withRowAnimation:UITableViewRowAnimationLeft];
[self.categoriesArray writeToFile:[self dataFilePath] atomically:YES];
但是现在,因为我必须在 alertview 委托(delegate)方法中使用相同的代码。我不知道如何获取 [indexPath row]
最佳答案
将您的索引路径设置为 UIAlertView
标记并从 Delegate 获取。
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath // indexPath is here
{
if (editingStyle == UITableViewCellEditingStyleDelete)
{
UIAlertView * alertView = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"Are you sure want to delete" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Delete", nil];
[alertView setTag:indexPath.row]; // Assigning here.
[alertView show];
}
}
// UIAlertView Delegate
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSLog(@"%d",alertView.tag); // Your Indexpath is here
**Edited:**
NSIndexPath * path = [NSIndexPath indexPathForRow:alertView.tag inSection:0];
[[self categoriesArray]removeObjectAtIndex:[path row]];
NSArray * indexPathsToRemove = [NSArray arrayWithObject:path];
[self.tableView deleteRowsAtIndexPaths:indexPathsToRemove withRowAnimation:UITableViewRowAnimationLeft];
[self.categoriesArray writeToFile:[self dataFilePath] atomically:YES];
}
关于iphone - 获取所选单元格的索引路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15834317/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!