iOS视图生命周期与视图控制器关系

iOS中视图是一个应用的重要组成部分,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻。

视图生命周期与视图控制器关系

以视图的5种状态为基础,我们来系统的了解一下视图控制器的生命周期。在视图不同的生命周期,视图控制器会回调不同的方法。

viewDidLoad方法:视图控制器已被实例化,在视图被加载到内存中的时候调用该方法,这个时候视图并未出现。在该方法中通常进行的是对所控制的视图进行初始化处理。

视图可见前后会调用viewWillAppear:方法和viewDidAppear:方法;视图不可见前后会调用viewWillDisappear:方法和viewDidDisappear:方法。
4个方法调用父类相应的方法以实现其功能, 编码时该方法的位置可根据实际情况做以调整,参见如下代码:

[cpp]

-(void)viewWillAppear:(BOOL)animated

{

[super
viewWillAppear:YES];


}

-(void)viewWillAppear:(BOOL)animated

{

[super
viewWillAppear:YES];


}

viewDidLoad方法在应用运行的时候只调用一次,而这上述4个方法可以被反复调用多次,它们的使用很广泛但同时也具有很强的技巧性。例如:有的应
用会使用重力加速计,重力加速计会不断轮询设备以实时获得设备在z轴、x轴和y轴方向的重力加速度。不断的轮询必然会耗费大量电能进而影响电池使用寿命,
我们通过利用这4个方法适时地打开或者关闭重力加速计来达到节约电能的目的。怎么使用这4个方法才能做到“适时”是一个值得思考的问题。

iOS系统在低内存时情况下会调用didReceiveMemoryWarning:和viewDidUnload:方法。iOS6之后就不再使用
viewDidUnload:,而仅支持didReceiveMemoryWarning:。didReceiveMemoryWarning:方法的主
要职能是释放内存,包括视图控制器中的一些成员变量和视图的释放。现举例如下:

[cpp]

-
(void)didReceiveMemoryWarning {

self.button
= nil;

self.myStringD
= nil;

[myStringC
release];

[super
didReceiveMemoryWarning];

}

-
(void)didReceiveMemoryWarning {

self.button
= nil;

self.myStringD
= nil;

[myStringC
release];

[super
didReceiveMemoryWarning];

}

时间: 2024-10-15 01:08:51

iOS视图生命周期与视图控制器关系的相关文章

视图生命周期

视图是应用的一个重要组成部分,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 1.视图生命周期与视图控制器关系 以视图的4 种状态为基础,我们来系统了解一下视图控制器的生命周期.在视图不同的生命周期中,视图控制器会回调不同的方法,具体如图1 所示.                                                           图1 视图控制器的一些主要方法 在视图控制器已被实例化,视图被加载到内存中时调用viewDidLoad

创建控制器、控制器加载view过程、控制器view的生命周期、多控制器

在介绍四大对象的那篇博客中,可以基本了解到程序启动的过程: main-->UIApplicationMain-->创建UIApplication的实例和app代理AppDelegate的实例并设置好代理--->在程序启动后,也就是启动画面显示之后, AppDelegate创建UIWindow(可以是自动创建的,也可以手动创建) 现在讨论的问题是,如何创建控制器并设置为UIWindow的根控制器,然后加载出控制器中的view并显示出来. 本文目录 1.创建控制器的三种方式 2.控制器的vi

IOS ViewController生命周期

ViewController ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内部各个view的加载显示和卸载,同时负责与其他ViewController的通信和协调. 在IOS中,有两类ViewController,一类是显示内容的,比如UIViewController.UITableViewController等,同时还可以自定义继承自UIViewController的Vi

IOS的生命周期问题

开发Android必须得清楚Android生命周期才能很好的掌控程序的框架,让整个项目思路更加清晰流畅,因此IOS也是必须要了解IOS的生命周期 先从一个简单的实例来看看 AppDelegate.m文件里面的内容如下: // // AppDelegate.m // SwitchView // // Created by Pishum on 15/5/5. // Copyright (c) 2015年 Pishum. All rights reserved. // #import "AppDele

IOS Application生命周期

应用程序的状态 Not running(未运行):程序没启动 Inactive(未激活):程序在前台运行,不过没有接收到事件.在没有事件处理情况下程序通常停留在这个状态 Active(激活):程序在前台运行而且接收到了事件.这也是前台的一个正常的模式 Backgroud(后台):序在后台而且能执行代码,大多数程序进入这个后台后会在在这个状态上停留一会.时间到之后会进入挂起状态(Suspended).有的程序经过特殊的请求后可以长期处于Backgroud状态 Suspended(挂起):程序在后台

图解ios程序生命周期

图解ios程序生命周期 应用程序启动后状态有Active.Inactive.Background.Suspended.Not running这5种状态,几种状态的转换见下图: 在AppDelegate中实现app状态变化时的回调函数,在 app状态发生变化时,系统会执行相应回调: - (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

iOS视图生命周期总结(别人博客荡来的)

1.initialize  类的初始化 2.init 3.loadView 4.viewDidLoad 5.viewWillAppear 6.viewWillLayoutSubviews 7.viewDidLayoutSubviews 8.viewDidAppear 9.viewWillDisappear 10.viewDidDisappear 11.viewWillUnload 内存过低时,需要释放一些不需要使用的视图时,即将释放时调用 12.viewDidUnload 内存过低,释放一些不需

【Xamarin 开发 IOS --IOS ViewController生命周期】

ViewController ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内部各个view的加载显示和卸载,同时负责与其他ViewController的通信和协调. 在IOS中,有两类ViewController,一类是显示内容的,比如UIViewController.UITableViewController等,同时还可以自定义继承自UIViewController的Vi

iOS程序生命周期 AppDelegate

iOS的应用程序的生命周期,还有程序是运行在前台还是后台,应用程序各个状态的变换,这些对于开发者来说都是很重要的. iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验.//开发app,我们要遵循apple公司的一些指导原则,原则如下:1.应用程序的状态状态如下:Not running  未运行  程序没启动Inactive          未激活        程序在前台运行,不过没有接收到事件.在没有事件处理