UIStateRestoration 的两个方法调用介绍

        昨天下午翻出来一个官网的TableView 搜索查询的Sample Code,里面用到UIStateRestoration 的几个方法。

        - (void)decodeRestorableStateWithCoder:(NSCoder *)coder;

        - (void)encodeRestorableStateWithCoder:(NSCoder *)coder;

        眨眼一看以为是归档呢,可是此归档非彼归档。于是一顿搜索还是没有找到这个方法是干嘛用的,说是为了保存UI状态的,平时开发也没用到过这个方法。

        好奇心害死猫啊,发现运行过程中这个方法打的断点也没有执行啊,Documentation里面的介绍也没有说到这个具体怎么用,或者是我没翻译出来?反正我是对这个好奇了一阵子,然后今天才搞懂这个东西咋用的。

        具体简单说明,这两个方法是为了保持UI状态的,使用的时候,还需要在AppDelegate中配置两个方法;

               - (BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder ;这个方法是说进入后台后,是否保存UI状态,如果返回是YES ,那么系统会调用 encodeRestorableStateWithCoder 的方法,对UI状态进行保存。

        - (BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder;这个方法是说从App重新运行后(从后台返回到前台的时候是没有执行的,只是重新启动App的时候),调用decodeRestorableStateWithCoder的方法,获得上次保存的状态,进行展示,UI界面还是退出App 时候的界面。

            如果大家开发过程中遇到这样的需求,可以看一下这个类和方法以及官网的介绍,本人表达的可能不是最准确的,但起码是我实践出来的,欢迎大家补充!

        第一次写文章表示不太会写太科学详细的内容,因为本身我也是个渣渣,但是我只是记录一下我认为重点的地方,所以在这里申明一下我不是标题党,只不过不知道该怎么写这个标题,如果大家搜索到这篇文章没有获得自己想要的内容,那么抱歉,渣渣水平的不能给您服务那么周到,但是我觉得至少还是有点帮助的吧,哈哈!!写完10分钟,偷笑一整天!

你可能感兴趣的:(UIStateRestoration 的两个方法调用介绍)