永远不能调用MoveRowAtIndexPath

时间:2013-06-27 08:27:42

标签: ios objective-c uitableview

enter image description here

只要查看该图片(您可能需要放大)

在监视窗格中,您会看到tableView为null。没有意义。在- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath

中,tableView在任何情况下都不为空

它并不是真的。

代码:

   PO(tableView);
    PO(self.delegate.tvDelegated);
    PO(self.delegate.tvDelegated.dataSource);
    PO(self.delegate.tvDelegated.delegate);
    PO(indexPath);

清楚地表明tableView与self.delegate.tvDelegated相同,并且数据源和委托是self。

tableView: <UITableView: 0x1ea4c800; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1f082f30>; layer = <CALayer: 0x1f29d8d0>; contentOffset: {-0, 10}>
self.delegate.tvDelegated: <UITableView: 0x1ea4c800; frame = (0 0; 320 367); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1f082f30>; layer = <CALayer: 0x1f29d8d0>; contentOffset: {-0, 10}>

1 个答案:

答案 0 :(得分:1)

根据docs

  

要显示重新排序控件,您不仅必须设置此项   属性,但实现UITableViewDataSource方法   的tableView:moveRowAtIndexPath:toIndexPath :.另外,如果是数据   source实现tableView:canMoveRowAtIndexPath:返回NO,即   重新排序控件不会出现在指定的行中。

实施

- (BOOL) tableView: (UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndex toIndexPath:(NSIndexPath *)toIndex