`

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会清理后台程序,在这个时候会调用该方法,一般情况下,很少会用到这个方法,尽量不要在这个方法里写你的应用逻辑。
分享到:
评论

相关推荐

    delphi IOS lifecycle 生命周期 后台

    在这个文件中,你可以看到布局、控件和它们的属性设置,以及与生命周期相关的事件处理。 在开发过程中,确保正确处理生命周期事件能提高用户体验,同时避免数据丢失和资源浪费。通过理解并利用Delphi提供的生命周期...

    ios-控件悬停.zip

    在此过程中,我们需要精确地处理手势的触发生命周期,确保在正确的时间点触发悬停效果。 接下来,"下边的继续滑动"意味着即使头部控件悬停,下方的内容仍能继续滚动。这需要我们在处理`UIScrollView`的滚动事件时,...

    IOS UIView的生命周期的实例详解

    UIView是IOS开发中最基本的视图控件之一,它的生命周期是指从实例化到销毁的整个过程。理解UIView的生命周期对于开发者来说是非常重要的,因为它关系到应用程序的性能和稳定性。 在UIView的生命周期中,主要经历了...

    一个闪烁的圆圈控件,主要用于定位,ios上的

    主要用于定位,ios上的”涉及到的知识点包括:iOS控件自定义、图形绘制(Core Graphics或SwiftUI)、定时器或CADisplayLink实现动画、Core Location定位服务的使用,以及自定义视图的生命周期和方法。这个控件的实现...

    kache, iOS缓存控件,支持哈希,队列和时间池.zip

    开发者可以通过调整时间池的参数,灵活控制缓存的生命周期,达到最佳性能和内存使用平衡。 除了以上核心特性,kache还可能包含其他实用功能,如线程安全、内存警告响应机制等。线程安全确保了多线程环境下kache的...

    iOS自定义控件开发梳理总结

    无论选择哪种方式,自定义控件的关键在于理解其生命周期和布局机制。`layoutSubviews`是关键的方法,当视图需要更新子视图的位置或尺寸时,系统会自动调用它。开发者应避免频繁地手动调用此方法,因为系统会自动管理...

    iOS 实现页面跳转

    我们将讨论两种主要的页面跳转方式:模态(Modal)展示和导航控制器(Navigation Controller)的使用,同时也会涉及控件的生命周期以及UIButton等基础控件的属性。 一、模态页面跳转 模态页面跳转通常用于向用户...

    Android应用源码之高仿iOS ActionSheet控件.zip

    DialogFragment是Android支持库的一部分,它继承自Fragment,提供了显示对话框的能力,同时保留了Fragment的生命周期管理。 接着,我们要创建一个自定义的DialogFragment类,如`IOSActionSheetDialogFragment`。在...

    高仿iOS ActionSheet控件.zip

    5. **显示与隐藏控制**:ActionSheet的显示和隐藏应该通过公共方法控制,如show()和dismiss(),并且需要考虑Activity或Fragment的生命周期,防止内存泄漏。 6. **兼容性处理**:为了确保在不同版本的Android系统上...

    ios-刷新控件.zip

    实现这些功能,开发者需要熟悉Swift或Objective-C编程语言,理解UITableView和UICollectionView的生命周期以及数据源方法,掌握UIScrollView的滚动事件处理,以及可能涉及到的动画操作。"ios-刷新控件.zip"中的示例...

    ios-播放器控件.zip

    使用ARC(Automatic Reference Counting)可以自动管理对象的生命周期,但开发者仍需关注内存峰值和及时释放不再使用的资源。 通过分析"PlaySongDemo"项目,开发者可以学习到如何在iOS应用中创建一个功能完善的...

    Android-仿Iphone的日期控件

    1. **自定义View**:自定义控件是实现特殊UI效果的常用手段,需要了解View的生命周期、onDraw()方法用于绘制界面,以及事件监听机制,如OnTouchListener,来处理用户的触摸操作。 2. **触摸事件处理**:通过...

    ios-仿微信、微博底部弹出视图控件.zip

    6. **生命周期管理**:在`UIViewController`的生命周期中,开发者需要处理好视图的加载、显示、隐藏和释放等事件,确保资源的有效利用和内存泄漏的避免。 7. **扩展性**:为了使控件具有更好的复用性,开发者可以将...

    iOS简答题及答案,期末复习必看!

    涵盖了Swift语言、iOS开发中的基础知识点,包括Optional类型、元组、struct和class、手势、Action和Outlet、Controller和View的关系、ViewController之间的传值方法、ViewController的生命周期、Optional类型的拆包...

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

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

    Android应用源码之高仿iOS ActionSheet控件-IT计算机-毕业设计.zip

    1. **DialogFragment的生命周期**:理解如何在onCreateDialog()方法中构建和返回ActionSheet的Dialog实例。 2. **动态布局管理**:ActionSheet中的按钮数量可能不固定,因此需要使用动态添加View的方法,如...

    iOS 工程入门框架

    10. **App生命周期与内存管理**: 学习理解应用的生命周期,如启动、暂停、恢复和终止状态,以及如何有效地管理内存(如ARC,引用计数),是每个iOS开发者的基本功。 总的来说,"iOS工程入门框架"的学习涵盖了大量的...

    ios开发详解markdown格式

    - **CoreData**:这是一个用于iOS和macOS的数据持久化框架,可以有效地管理对象的生命周期及其之间的关系。 - **CoreAnimation**:提供了一套强大的动画接口,让开发者可以轻松实现复杂的动画效果。 - **Grand ...

    IOS开发指南(第5版) pdf下载地址

    iOS应用的生命周期和状态管理是开发者必须理解的概念。书中会阐述如何处理应用的启动、暂停、恢复和终止,以及如何有效地管理内存和后台任务。此外,还会涉及到数据持久化,包括使用Core Data进行对象关系映射,以及...

Global site tag (gtag.js) - Google Analytics