IOS开发中,手工要求UITableView 根据新的内容重写画表单的方法

例如:有这样的需求。IOS客户端有个UITableView的视图,在初始化的时候读取了数据,画出了表单。

晚些时候,后台的数据发生了变化。通知TableView根据新的数据重画表单。这个时候,由于初始化方法已经不可能在被调用。所以无法在重画。

我的解决办法是 ,通过viewDidAppear 的方法里面加入强制重画语句,使得这个TableView再下次显示的时候,按照新的数据重画表单。


这里主要强调的是 强制重画的调用函数

[(UITableView *)([[self.view subviews] objectAtIndex:1]) reloadData];

主要思路是从这个Controller中获得所有的子视图,由于我的nib文件中TableView位于View下面 ,所以他的索引是1,即是第二个子视图。然后对这个变量进行类型装换。再调用reloadData方法。

可以通过  NSLog(@"%@",[(UITableView *)([[self.view subviews] objectAtIndex:1]) description]); 这段代码,来确定类型是否是TableView。如果不是,进行强转,会引起程序崩溃。

reloadData方法,就是要求TableView根据新的数据,重写画表单。我们只需要调用这个方法,就会让委托自己发送请求调用 -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 这个方法来画cell。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值