代码之家  ›  专栏  ›  技术社区  ›  Ryan Bavetta

UITableViewDataSource已完成向UITableViewDelegate加载信号

  •  0
  • Ryan Bavetta  · 技术社区  · 15 年前

    我有单独的文件 uiTable视图数据源 委托协议

    我正在UITableView上实现“下拉刷新”功能,并希望从 uiTable视图数据源 委托协议 使装载指示器停止转动。

    我想知道在 uiTable视图数据源 委托协议 或者如果有更好的方法来构造它,因为我觉得我正在打破一些抽象的障碍。

    我在数据源中的内容:

    if([tableView.delegate respondsToSelector: @selector(dataSourceDidFinishLoadingNewData)]){
        [tableView.delegate dataSourceDidFinishLoadingNewData];
    }
    

    但我在协议警告中找不到“datasourcedIdFinishingLoadingNewData”,因为我猜该函数没有声明为 委托协议

    3 回复  |  直到 15 年前
        1
  •  1
  •   David Liu    15 年前

    只是一个旁白;当使用:

    if([object respondsToSelector:@selector(someMethod)]){
        [object someMethod];
    }
    

    范例,你可以用这个来代替:

    if([object respondsToSelector:@selector(someMethod)]){
        [object performSelector:@selector(someMethod)];
    }
    

    可能有点长,但不会给你任何警告。

        2
  •  1
  •   David M.    15 年前

    也许您知道,但是pull-to-refresh有多个开源实现。你可能想在自己动手之前先看看这些。这里有一个(只是谷歌的第一个): http://github.com/leah/PullToRefresh

        3
  •  0
  •   Toastor    15 年前

    你不可能在保持事物完全抽象的同时做到这一点。通过TableView委托属性调用委托的另一种方法是交换保留引用。但是,您甚至可以通过使用通知向委托发出加载已完成的信号来避免需要保持对其他对象的引用。

    检查 NSNotificationCenter 更多信息。