我在UITableView
内嵌了一个UIViewController
,但我遇到了一些问题。我已将表视图的委托设置为视图控制器。
1)数据源是从互联网上检索的数组。问题是当数据下载并放入数组并且已调用[self.tipTableView reloadData]
时,它不会更新表。我可以看到numberOfRowsInSection:
被调用并返回正确的数字(不是0),但它不会调用cellForRowAtIndexPath:
。但是,当数组包含viewDidLoad
中的数据时,它会正确加载它。
2)我想默认隐藏表格,然后按下按钮时可见。将表设置为隐藏在viewDidLoad
中工作正常,但是当我按下按钮时尝试将其设置为可见时,它不起作用。我正在尝试self.tipTableView.hidden = NO;
,这似乎只适用于viewDidLoad
,而不是其他方法。
表视图是在界面构建器中创建的,它连接到视图控制器,如下图所示:
有谁知道为什么会出现这些问题?
谢谢!
答案 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中正确连接按钮?
您是将其作为动作还是插座连接?
...或者您只是以编程方式创建按钮?