如何使subtableview调用cellForRowAtIndexPath函数

时间:2014-01-24 03:41:02

标签: ios objective-c uitableview

我在主视图中添加了一个子tableView,并且subView每2秒重新刷新一次数据,但子视图控制器中的cellForRowAtIndexPath函数不会自动调用。只有在我手动移动主UI中的表视图时才会调用它。有什么想法吗?

子表视图创建为以下代码。

_tableView = [[UITableView alloc]init];
_mvc = [[meterViewController alloc]initWithMeter:ipAddr protocol:protocol id: meterId];
_tableView.dataSource = _mvc.self;

_tableView.frame = self.view.bounds;
[self.view addSubview:_tableView];

PS:subtableview控制器中的numberOfSectionsInTableView每2秒调用一次,但是cellForRowAtIndexPath仅在启动时调用,或者我在主屏幕上拖动tableview使其重绘。

3 个答案:

答案 0 :(得分:0)

以下提示可能有助于重新加载subTableView:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{
    if(tableView == superTableView){
        [subTableView performSelector:@selector(reloadData) withObject:nil afterDelay:0.1];
        return //superTableView.sectonCount
    }
    else if(tableView == subTableView){
        return //subTableView sectionCount

    }

    return //default Count, you can set 1.
}

答案 1 :(得分:0)

听起来代理人设置不正确。确保你做self.tableView.delegate = self;。自我将是您的视图控制器而不是您的子视图。

您可以使用子视图,但是您必须在子视图自定义类中实现UITableViewDelegate和UITableViewDataSource协议。将tableview的委托和数据源分配给子视图。

答案 2 :(得分:0)

很奇怪但是reloadSection可以用来调用cellForRowAtIndexPath。

NSIndexSet * sections = [NSIndexSet indexSetWithIndex:i]; [self.tableView reloadSections:sections withRowAnimation:UITableViewRowAnimationNone];