UITableView不会重新加载内容

时间:2012-09-28 12:46:29

标签: objective-c uitableview uiviewcontroller

我在UITableView内嵌了一个UIViewController,但我遇到了一些问题。我已将表视图的委托设置为视图控制器。

1)数据源是从互联网上检索的数组。问题是当数据下载并放入数组并且已调用[self.tipTableView reloadData]时,它不会更新表。我可以看到numberOfRowsInSection:被调用并返回正确的数字(不是0),但它不会调用cellForRowAtIndexPath:。但是,当数组包含viewDidLoad中的数据时,它会正确加载它。

2)我想默认隐藏表格,然后按下按钮时可见。将表设置为隐藏在viewDidLoad中工作正常,但是当我按下按钮时尝试将其设置为可见时,它不起作用。我正在尝试self.tipTableView.hidden = NO;,这似乎只适用于viewDidLoad,而不是其他方法。

表视图是在界面构建器中创建的,它连接到视图控制器,如下图所示:

enter image description here

有谁知道为什么会出现这些问题?

谢谢!

3 个答案:

答案 0 :(得分:1)

据我所知,为屏幕上当前可见的单元格调用 cellForRowAtIndexPath 方法。我想当你重新装载你的桌子时,它仍然是看不见的。所以也许你应该先尝试设置隐藏的NO,然后在有数据显示之后立即重新加载数据。

答案 1 :(得分:0)

<强> 1

您必须在dateource中至少实现以下方法:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return [yourarray count];
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// that's up to you
}

我想你忘了实施 numberoOfRowsInSection

<强> 2

尝试:

[self.tableView setHidden:NO];

如果您在显示它之后没有循环((条件)do_something;),那应该可行。

如果您在主线程中从网络下载内容,也会出现这种情况。

答案 2 :(得分:0)

在我看来,您没有连接正确启动操作的按钮,因为如果您从viewDidLoad方法运行它,它会起作用,但在将操作连接到按钮时不起作用。

您是否在IB中正确连接按钮?

您是将其作为动作还是插座连接?

...或者您只是以编程方式创建按钮?