0

我将如何访问此代码以确定在非 tableView 方法中使用哪个 tableView?

我知道如何在tableView:numberOfRowsInSection:方法中使用它,但我将如何在我制作的方法中访问它?

我应该使用UITableView而不是 tableView 吗?

-(void)myMethod {

    if ([tableView isEqual:self.tableViewNode])
        {

        }
        if ([tableView isEqual:self.tableViewCities])
        {

        }

}

我正在查看 tableView 是否为 scrollViewDidEndDecelerating: 然后执行操作。

    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {

//    NSLog(@"scrollViewDidEndDecelerating");

    if ([UITableView isEqual:self.tableViewNode])
    {
        float endScrolling = scrollView.contentOffset.y + scrollView.frame.size.height;
        if (endScrolling >= scrollView.contentSize.height)
        {
            index ++;
            [self getFeed:index];
        }
    }
    if ([UITableView isEqual:self.tableViewCities])
    {

    }


}
4

1 回答 1

1

UIScrollViewDelegate方法内部,您可以将scrollView参数与表视图属性进行比较。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (self.firstTableView == scrollView) {
        // respond to firstTableView scrolling
    }
    else if (self.secondTableView == scrollView) {
        // respond to secondTableView scrolling
    }
}

如果您需要在表视图的委托中实现由委托方法调用的方法,但根据调用方法的表视图的行为不同,那么您应该使这些方法采用表视图参数并始终传递表视图调用委托方法时的参数。在这些方法中,与tableView您的属性进行比较。

- (void)myMethod:(UITableView *)tableView
{
    if (self.firstTableView == tableView) {
        // do something for firstTableView
    }
    else if (self.secondTableView == tableView) {
        // etc
    }
}

例如,如果您需要打电话myMethod:tableView:didSelectRowAtIndexPath:您可以这样做:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    [self myMethod:tableView];
}
于 2013-09-21T14:11:08.883 回答