IOS开发指南读书笔记3(视图的生命周期)

原创 2015年11月18日 11:34:33
IOS开发指南读书笔记3(视图的生命周期)
1、视图的生命周期
图片

ViewDidLoad方法只会调用一次,而viewWillAppear:、viewDidAppear:、viewWillDisAppear:、viewDidDisAppear:回调用多次。

低内存的情况下,IOS会调用didReceiveMemoryWarning:和viewDidUnload:,到ios6.0,已经不再用viewDidUnload:了。当发生内存警告的时候,应该释放一些成员变量和视图。

2、UI状态的保存和恢复
在IOS6.0中可以在三个地方进行UI状态的保存与恢复
AppDelegate
ViewController
自定义视图

在AppDelegate中
添加以下代码

//应用退出的时候调用,是否允许保存状态
-(BOOL)application:(UIApplication *)application shouldSaveApplicationState:(NSCoder *)coder
{
    return YES;
}

//应用启动的时候调用,是否恢复上次退出时保存的状态
-(BOOL)application:(UIApplication *)application shouldRestoreApplicationState:(NSCoder *)coder
{
    return YES;
}

//方法在保存的时候调用,保存UI状态或数据
-(void)application:(UIApplication *)application willEncodeRestorableStateWithCoder:(NSCoder *)coder
{
    //例如保存简单数据
    [coder encodeFloat:2.0 forKey:@"Version"];
}

//恢复时调用,恢复上次保存的数据
-(void)application:(UIApplication*)application didDecodeRestorableStateWithCoder:(NSCoder *)coder
{
    float laerVersion = [coder decodeFloatForKey:@"Version"];
}

要实现具体控件数据的恢复,以textField为例,假如用户为输入完数据,程序就退出,想恢复用户输入的数据需要在所在的ViewController假如以下代码

//保存时候调用
-(void)encodeRestorableStateWithCoder:(NSCoder *)coder
{
    [super encodeRestorableStateWithCoder:coder];
    [coder encodeObject:self.txtField.text forKey:@"txtFieldContent"];
}

//恢复时调用
-(void)decodeRestorableStateWithCoder:(NSCoder *)coder
{
    [super decodeRestorableStateWithCoder:coder];
    self.txtField.text = [coder decodeObjectForKey:@"txtFieldContent"];
}

iOS视图生命周期解析

IOS视图生命周期解析视图控制对象通过alloc和init来创建,但是视图控制对象不会在创建的那一刻就马上创建相应的视图,而是等到需要使用的时候才通过调用loadView来创建,这样的做法能提高内存的...
  • Felix_Smile
  • Felix_Smile
  • 2017年04月03日 16:23
  • 505

IOS开发UI-------视图的生命周期

这里说视图的生命周期的时候顺便引入APP运行调用方法的顺序 首先单单说视图的生命周期方法调用的顺序,这个是我百度出来的 initWithNibName:bundle: 初始化UIViewContro...
  • sinat_26554783
  • sinat_26554783
  • 2016年01月18日 17:03
  • 677

iOS10 UI教程子视图和父视图UI层次结构和Views继承

iOS10 UI教程子视图和父视图UI层次结构和Views继承
  • u014621518
  • u014621518
  • 2016年11月25日 10:08
  • 542

IOS中的生命周期及加载过程

这一节,主要讲解UIKit框架下,应用程序的生命周期,UIView的生命周期,异常处理流程及控制器的加载过程。 四大对象关系图 应用程序生命周期 对上面的流程进行说明: 1. 程序...
  • sinat_27706697
  • sinat_27706697
  • 2015年05月15日 08:57
  • 1385

IOS_UITableViewController 视图控制器的生命周期

// 视图控制器的生命周期 // 1. 初始化方法(init) // 2.如果视图需要显示在屏幕上(View的getter方法被调用) 就会调用loadView方法创建视图,准备显示 ...
  • qiyuting_cherish
  • qiyuting_cherish
  • 2015年09月08日 19:34
  • 1155

IOS开发指南读书笔记2(应用程序的生命周期)

1、程序的五种状态 Not Running:未运行。 Inactive:前台非活动状态。处于前台,但是不能接受事件处理。 Active:前台活动状态。处于前台,能接受事件处理。 Backgro...
  • hahahakonghee
  • hahahakonghee
  • 2015年11月18日 11:33
  • 447

iOS UIViewController的生命周期

1.UIViewController的生命周期相关的函数如下: override func loadView() { super.loadView() } ...
  • hnuzengchao
  • hnuzengchao
  • 2016年01月07日 15:24
  • 1215

Mac应用编程指南之三——核心应用设计

使用Cocoa应用程序环境来开发应用,以释放OS X的强大性能。Cocoa呈现应用的用户界面,并将其与操作系统的其它组件整合为一体。Cocoa通过AppKit和Foundation框架这两个核心类库来...
  • johnbob2014
  • johnbob2014
  • 2017年02月08日 17:02
  • 520

关于iOS 中UIViewController的生命周期以及相关视图(View)的探讨

最近朋友在面试的时候,面试官问到了关于iOS中UIViewController的生命周期以及相关视图(View)的问题,朋友对于自己的观点还是挺有信心的,但是面试官提出了异议,朋友回来便和我们聊起了此...
  • LHEnjoy
  • LHEnjoy
  • 2016年07月16日 15:28
  • 764

iOS视图的生命周期

进入ViewController的头文件,查看这个提供的方法,以下列出一些有关iOS视图生命周期的几个方法: - (void)viewDidLoad - (void)viewWillAppear:(B...
  • weichuang_1
  • weichuang_1
  • 2015年10月18日 00:37
  • 298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IOS开发指南读书笔记3(视图的生命周期)
举报原因:
原因补充:

(最多只允许输入30个字)