zoukankan      html  css  js  c++  java
  • UITableView刷新数据reLoadData


    要实现的功能是这样的:在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***方法,单元格的设置信息会被重新执行一遍。


  • 相关阅读:
    DataTable
    asp.net2.0异步页面和异步web部件
    Ref 和Out 区别
    关于String str =new String("abc")和 String str = "abc"的比较
    MongoDB介绍及安装
    通过MongoDB的samus驱动实现基本数据操作
    SQL 联合索引 与 单一列的索引 比较
    C#字符串处理(String与StringBuilder)
    C#操作文件夹及文件的方法的使用
    常见的sql语句 注意点及用法【区分mysql 和Sqlserver】
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3025976.html
Copyright © 2011-2022 走看看