美文网首页
2019-03-20 iOS View的生命周期

2019-03-20 iOS View的生命周期

作者: coenen | 来源:发表于2019-03-20 21:01 被阅读0次

看到网络层请求的时候,都比较关注什么时候取消请求,什么时候获取数据,又在什么时候去展示数据。这是很多开发者都比较关注的话题。在这里简单分享一下。

网上的资料很多,我们见到的最多的都是view的生命周期从一开始到最后销毁。但是很少有页面间的view生命周期是什么流程的。了解view的生命周期有助于我们选择更加合适的时机去进行view的操作和网络的请求。

View 生命周期

第一个 ViewController 第二个SViewController 第三个TViewController
View的展示及销毁情况
第一个就是
initialize -->init --> viewDidLoad-->viewWillAppear-->viewWillLayoutSubviews-->viewDidLayoutSubviews-->viewDidAppear
然后进入第二个VC
initialize -->init --> viewDidLoad-->此时第一个VC viewWillDisappear-->viewWillAppear-->viewWillLayoutSubviews-->viewDidLayoutSubviews-->此时第一个VC viewDidDisappear-->viewDidAppear

具体的Log如下:
Method: +[SViewController initialize]
Method: -[SViewController init]
Method: -[SViewController viewDidLoad]
Method: -[ViewController viewWillDisappear:]
Method: -[SViewController viewWillAppear:]
Method: -[SViewController viewWillLayoutSubviews]
Method: -[SViewController viewDidLayoutSubviews]
Method: -[ViewController viewDidDisappear:]
Method: -[SViewController viewDidAppear:]

然后进入第三个VC
initialize -->init --> viewDidLoad-->此时第二个VC viewWillDisappear-->viewWillAppear-->viewWillLayoutSubviews-->viewDidLayoutSubviews-->此时第二个VC viewDidDisappear-->viewDidAppear

Method: +[TViewController initialize]
Method: -[TViewController init]
Method: -[TViewController viewDidLoad]
Method: -[SViewController viewWillDisappear:]
Method: -[TViewController viewWillAppear:]
Method: -[TViewController viewWillLayoutSubviews]
Method: -[TViewController viewDidLayoutSubviews]
Method: -[SViewController viewDidDisappear:]
Method: -[TViewController viewDidAppear:]

上面是View的开始,下面看一下view的依次释放。

返回上一个VC
首先是第三个VC(TViewController)调用viewWillDisappear
然后第二个VC(SViewController)即将展示view(viewWillAppear)
在第二个即将展示之后,第三个VC视图消失完成viewDidDisappear
在第三个消失之后,第二个VC展示完成viewDidAppear
最后进行第三个VC dealloc

Method: -[TViewController viewWillDisappear:]
Method: -[SViewController viewWillAppear:]
Method: -[TViewController viewDidDisappear:]
Method: -[SViewController viewDidAppear:]
Method: -[TViewController dealloc]

返回第一个VC
首先是第二个VC(SViewController)调用viewWillDisappear
然后第一个VC(ViewController)即将展示view(viewWillAppear)
在第一个即将展示之后,第二个VC视图消失完成viewDidDisappear
在第二个消失之后,第一个VC展示完成viewDidAppear
最后进行第二个VC dealloc

Method: -[SViewController viewWillDisappear:]
Method: -[ViewController viewWillAppear:]
Method: -[SViewController viewDidDisappear:]
Method: -[ViewController viewDidAppear:]
Method: -[SViewController dealloc]

最后再进行一次Push操作
我们再观察一下View的生命周期情况

Push

Method: -[SViewController init]
Method: -[SViewController viewDidLoad]
Method: -[ViewController viewWillDisappear:]
Method: -[SViewController viewWillAppear:]
Method: -[SViewController viewWillLayoutSubviews]
Method: -[SViewController viewDidLayoutSubviews]
Method: -[ViewController viewDidDisappear:]
Method: -[SViewController viewDidAppear:]

到此,差不多我们都有一个整体认识了,对view的生命周期有一个更加清晰的了解。Demo就不传了,很简单的,自己写一下方法,从新定义一下log什么都看到了。

有什么错误的地方欢迎各位大大指点与批评.

相关文章

  • #iOS Dev.#UIViewController

    如何做好IOS View的布局 iOS应用架构谈 view层的组织和调用方案 UIView的生命周期总结

  • 2019-03-20 iOS View的生命周期

    看到网络层请求的时候,都比较关注什么时候取消请求,什么时候获取数据,又在什么时候去展示数据。这是很多开发者都比较关...

  • 2019-01-10

    iOS开发之UIView与UIViewController的生命周期总结 iOS开发中,创建View常见的两种方式...

  • ViewController总结

    ViewController是iOS顶层的视图载体和控制器,它需要对view负责,管理view的生命周期,相关初始...

  • Web前端基础篇-HTML-02-HTML的生命周期

    从大前端的角度来讲每个页面都有生命周期,iOS有view生命周期,web页面同样也有生命周期;so, 问题来啦,w...

  • UIViewController 生命周期

    生命周期的图如下: ios 视图的生命周期(View Life Cycle) 事件发生的须序非常重要,这好让程序员...

  • 控制器的View的生命周期

    什么是控制器view的生命周期方法? 一般以view开头的方法,都是view的生命周期 控制器view的生命周期方法

  • React Native实战系列第十篇 — 组件生命周期

    前言 对于习惯了iOS开发的同学,可能会对React Native中组件的生命周期很困惑。在iOS中有一个View...

  • 控制器VIew 生命周期

    控制器view⽣生命周期 控制器View的⽣生命周期⽅方法:只要是控制器的⽣生命周期⽅方法,都是以view开头. ...

  • iOS笔记--面试题07

    1>面试: 控制器的生命周期 2>面试: iOS6:viewdidunload, (方法了解)当VC的View被卸...

网友评论

      本文标题:2019-03-20 iOS View的生命周期

      本文链接:https://www.haomeiwen.com/subject/asfxvqtx.html