UITableView刷新数据reLoadData

64 篇文章 0 订阅


要实现的功能是这样的:在rootView中一个TableView,刚加载程序的时候是空白的。当按下添加按钮之后,在下个页面设置好值,并要求回传给rootView,并在视图翻转完成后就刷新好rootView的TableView表。


解答:可以用以下知识完成:


(1)页面间消息机制NSNotificationCenter;


(2)少数据量的时候,用NSUserDefaults或者共同属性实现值的传递;大数据量的时候,就用delegate来实现存取。


(3)用reLoadData来实现刷新表格数据。代码如下:




1、在rootView中建立一个消息中心,用来监控下个页面是否传消息过来。一接到消息就调用reRoadTableView函数
[[NSNotificationCenter defaultCenter]addObserver:self
                                            selector:@selector(reRoadTableView)
                                                name:@"saveSetting"//消息名
                                              object:nil];//注意是nil
在下个页面建立响应的消息post点,可以放在确定按钮里面:
[[NSNotificationCenter defaultCenter] postNotificationName:@"saveSetting" object:self];//发送消息给root




2、写reRoadTableView函数,关键语句是[timerTab reloadData]
- (void) reRoadTableView
{
  //  self.finalSettings = [[NSUserDefaults standardUserDefaults] valueForKey:@"settings"]; //接收数组,第二种方法
    
    NSLog(@"你看到我就说明消息机制起作用了!");//消息机制工作正常
    NSLog(@"我收到的Tag是:%@",setTag);//没收到
    
    self.setDate = [NSDate date];//retainCount仍旧为1
    self.setTag = @"吃饭时间到!";
    
    NSDateFormatter *format = [[NSDateFormatter alloc]init];
    [format setDateFormat:@"MM-dd HH:mm"];
    self.strDate = [format stringFromDate:setDate];//转化为NSString
    [format release];
    
    [timerTab reloadData];
}
其实reLoadData方法被调用之后,系统会重新执行一遍TableViewDelegate的相关函数,最主要的cellFor***方法,单元格的设置信息会被重新执行一遍。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Men-DD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值