码迷,mamicode.com
首页 > 其他好文 > 详细

didEndEditingRowAtIndexPath with nil indexPath

时间:2015-01-22 15:17:33      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:

在UITableViewController中,通过滑动删除按钮删除一行,首先收到Table view data source call:

tableView:commitEditingStyle:forRowAtIndexPath

在这个调用中,需要首先删除数据,再删除界面上该行:

NSMutableArray * mutable = [self.options mutableCopy];
[mutable removeObjectAtIndex:indexPath.row];
self.options = mutable;
        
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];

在删除行的时候,会调用另一个Table view delegate call:

tableView:didEndEditingRowAtIndexPath:

indexPath参数指向的就是刚删除的cell的位置。于是我在这里做了一些其它刷新操作。

 

接着,意向不到的事情发生了,UITableViewController又一次调用了Table view delegate:

tableView:didEndEditingRowAtIndexPath:

此时传输的indexPath参数为——nil

我还没有在SDK中找到关于后一个调用的作用的描述,为避免重复操作,我只在这里调用了刷新操作:

if (indexPath == nil) {
    NSTimer * timer = [NSTimer timerWithTimeInterval:.5f target:self selector:@selector(reload:) userInfo:nil repeats:NO];
    [[NSRunLoop mainRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];
}

 

didEndEditingRowAtIndexPath with nil indexPath

标签:

原文地址:http://www.cnblogs.com/tara/p/4241618.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!