`

IOS 控件的生命周期

 
阅读更多
ViewController的生命周期包括:
Initialize
ViewDidLoad
ViewWillAppear
ViewDidAppear
ViewWillDisappear
ViewDidDisappear
ViewDidUnload
Dispose

      对于Application来说,ViewController的每个阶段都对应了一个方法,IOS会在适当的时间调用对应的方法,因此,我们可以在每个方法中添加对应的代码来做我们想做的事。需要注意的是,这些方法都是为ViewController服务的,对于Views对象来说,是没有这些方法的。
       View的生命周期方法如下:

   * ViewDidLoad - Called when you create the class and load from xib. Great for initial setup and one-time-only work

   * ViewWillAppear - Called right before your view appears, good for hiding/showing fields or any operations that you want to happen every time before the view is visible. Because you might be going back and forth between views, this will be called every time your view is about to appear on the screen

   * ViewDidAppear - Called after the view appears - great place to start an animations or the loading of external data from an API.

   * ViewWill/DidDisappear - Same idea as the WillAppear.

   * ViewDidUnload/Dispose - Available to you,  In objective-c, this is where you do your cleanup and release of stuff, but this is handled automatically so not much you really need to do here.

Application的生命周期包括:
      在IOS中,生命周期就是由一系列的方法构成, 对于一个App来说,涉及到的生命周期有:
1、点击icon启动,对应的方法有:
      didFinishLaunchingWithOptions:
      applicationDidBecomeActive:
2、按下Home键,返回桌面,对应方法:
      applicationWillResignActive
      applicationDidBecomeInactive
3、再点击icon回到前台,对应方法:
      applicationWillEnterForegroud
      applicationDidBecomeActive
4、Application忽然被终止,对应方法:
     applicationWillTerminate
     这儿需要注意,点2下home键,把后台程序关掉不会调用这个方法,在苹果的IOS开发指南上有如下描述:
”Even if you develop your application using iPhone SDK 4 and later, you must still be prepared for your application to be terminated. If memory becomes constrained, the system might remove applications from memory in order to make more room. If your application is currently suspended, the system removes your application from memory without any notice. However, if your application is currently running in the background, the system does call the applicationWillTerminate:method of the application delegate. Your application cannot request additional background execution time from this method.“ 就是说,在机器内存不足时,IOS会清理后台程序,在这个时候会调用该方法,一般情况下,很少会用到这个方法,尽量不要在这个方法里写你的应用逻辑。
分享到:
评论

相关推荐

    iOS 实现页面跳转

    iOS 实现页面跳转 准确的注释,适合新手 了解控件的生命周期,UIButton等的属性

    ios-iOS仿微信的悬浮窗,自定义转场动画,使用超级简单.zip

    HXSuspendViewManager是一个单例,负责主要的逻辑,控制悬浮窗和扇形view的生命周期、展示和隐藏。 HXSuspendViewController是一个协议,只要你的控制器遵守了这个协议,你的控制器就可以添加到悬浮窗中。 ...

    《iOS6开发指南》精彩书摘

    使用nib和故事板技术创建HelloWorld,通过HelloWorld我们讨论了iOS工程模板、应用的运行机制和生命周期、视图器的生命周期。最后介绍API帮助文档和官方案例的使用。 第3章“iOS常用设计模式”。 iOS开发中常用的4种...

    Android仿苹果siri 浮动控件

    实现原理是用WindowManager添加视图,生命周期可以不跟随某一页面或某一应用,可以全屏浮动(状态栏除外)。只有一个主类FloatView。在应用中new一下就可以显示了。

    moko-permissions:用于移动(android&ios)Kotlin Multiplatform开发的运行时权限控件

    目录特征权限-主要类型的设备权限枚举PermissionsController-运行时权限请求的处理程序可以在具有生命周期安全性的Android通用代码中使用DeniedException和DeniedAlwaysException-处理用户拒绝权限的异常要求Gradle...

    JobsAppDoor:两种机制实现比较炫酷的登录注册页面

    #iOS的控件生命周期大有文章,我在这里直接说示意图,这样你好我好大家好,你不需要知道为什么,你照着做就可以可以了: 1,无关紧要的不要往h文件里面暴露,如果非要用就用runtime获得; 2,用运行时获得m内部属性...

    UIAppication_Class

    UIAppication类的详细说明,用于设置ui控件,或者程序的生命周期的设置。官方文档。

    RuntimeDemo项目

    - [ ] 替换ViewController生命周期方法 - [ ] 解决获取索引、添加、删除元素越界crash问题 - [ ] 防止按钮重复暴力点击 - [ ] 全局更换控件初始效果 - [ ] App热修复 - [ ] App异常加载占位图通用类封装 - [ ]...

    android开发资料大全

    两分钟彻底让你明白Android Activity生命周期(图文)! Android 图形系统剖析 Android 立体效果图片 NDK动态库的调用 Android 姿态传感器 Android 很酷的图像旋转 Android 添加音频 在Android中实现多线程断点下载 ...

    百度地图 功能模块完整版 开发指南

    简介:创建一张百度地图并管理地图的生命周期 详述: (1)创建一张最简单的百度地图; (2)管理地图的生命周期,具体请参看代码部分的相关注释; -------------------------------------------------------------...

    产品经理学习视频

    01.第阶段:基础阶段和产品思维 1互联网思维 1-互联网基础思维1.mp4 2-互联网基础思维2.mp4 3-互联网基础思维3.mp4 4-互联网基础思维4.mp4 5-互联网思维之用户思维1.mp4 6-互联网思维之用户思维2.mp4 ...

    Android学习系列教程实例.pdf

    2.2. Activity 的生命周期 ....................... 27 2.2.1. Activity 的生命周期图 .......... 27 2.2.2. Activity 的四种状态 .............. 29 2.2.3. Activity 的生命周期循环 ...... 30 4 2.2.4. Activity ...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    而将那些被认为“过时”或有功能缺失的浏览器下的测试工作安排在开发周期的最后阶段 渐进增强 一开始只构建站点的最少特性,然后不断针对各浏览器追加功能。先让网站能够正常工作于尽可能旧的浏览器上,然后不断为它...

Global site tag (gtag.js) - Google Analytics