我有一个UITableView
,我正在从网络服务中读取数据。
来自Web服务的数据可能随时更改,因此我必须定期刷新我的数据。
我已设法刷新数据并将其存储在NSArray
中,但UITableView
不会显示这些数据。
我试过
[myTableView reloadData];
但它没有效果。
修改
我已经实现了将数据从NSArray
加载到UiTableView
的所有方法。
这在ViewDidLoad中初始化NSArray
时有效。
但如果在应用程序运行时NSArray
发生了更改,则UITableView
将不会显示这些更改。
答案 0 :(得分:3)
您需要实施UITableViewDataSource
委托协议,特别是- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
使用此方法设置单元格。您可以使用row
的{{1}}属性来确定要设置的单元格,并为其提供阵列中的数据。
例如
indexPath
修改强>
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
id item = [dataArray objectAtIndex:indexPath.row]; // Whatever data you're storing in your array
cell.textLabel.text = [item description]; // Substitute this for whatever you want to do with your cell.
}
应该致电
reloadData
和
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
看是否有任何细胞被绘制。确保您也实现了这些方法并返回非零值,否则您的表视图将不会尝试绘制任何单元格,并且不会调用- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
。
<强>解析强>
您可能也对this library感兴趣,它声称可以使远程数据驱动表更加简单。
答案 1 :(得分:0)
您必须调用将内容放入表中的函数。