如何在非tableView方法中访问tableView?

时间:2013-09-21 13:52:22

标签: ios objective-c uitableview

如何访问此代码以确定在非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])
    {

    }


}

1 个答案:

答案 0 :(得分: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];
}