3

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

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

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

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

在此处输入图像描述

有谁知道为什么会发生这些问题?

谢谢!

4

3 回答 3

1

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

于 2013-03-19T08:01:43.690 回答
0

1:

您必须在日期源中至少实现以下方法:

- (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];

这应该可以工作,前提是您在显示后没有循环( while (condition) do_something; )。

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

于 2012-09-28T13:16:08.460 回答
0

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

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

你是把它当作一个动作还是一个出口?

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

于 2012-10-06T23:40:03.257 回答