Stanford iOS Learn Notes - 5

今天总结一下 View Controller Lifecycle和Autolayout,即课程的第8节。

1. View Controller Lifecycle

其实听了两遍课程之后,我还是不能准确的总结出每一个controller的生命周期是多长。controller即MVC中的C,在MVC被创建后,controller的生命周期开始,这个很容易理解。但是我困惑的是MVC生命周期的结束。

  1. 首先怎么定义MVC生命周期的结果?controller的deinit函数被调用(内存释放)?还是View disapper了?对于调用Segue产生的MVC来说,只要这个MVC被从桌面移出了(disapper了),那么它就不会再出现了,因为每一次调用segue都是产生的新的MVC。通过课堂上的例子看的话,MVC的disppear和deinit并不是同时的。MVC Disappear的时候,并不会调用deinit,直到有一个新的同一类型的MVC产生的时候,disappear的MVC才会init。
  2. 我觉得还是要根据内存释放来定义controller的生命周期结束。但是问题是,这个内存释放的时间点事确定的么?

现在这两个问题自己还是无法解答,只能以后咨询别人或者在时间问题中慢慢琢磨了。不过本节课的侧重点并不是这个。本节课的侧重点是让你知道MVC的生命周期中各个主要的操作节点,即相应的API,然后通过覆盖相应的API函数来实现具体的工作。

总结一下,在View Controller的lifecycle中,有以下几个阶段:

  • Instantiated (from storyboard usually)
  • awakeFromNib
  • segue preparation happens
  • outlets get set
  • viewDidLoad
  • These pairs will be called each time your controller‘s view goes on/off screen...
    • viewWillAppear and viewDidAppear
    • viewWillDisappear and viewDidDisappear
  • These ‘geometry changed" methods might be called at any time after viewDidLoad ...
    • viewWillLayoutSubviews( ... then autolayout happens, then ...) viewDidLayoutSubviews
  • If memory get low, you might get ...
  • didReceiveMemoryWarning

2. Autolayout

其实本节课程并没有讲太多有关于Autolayout的东西。主要就是size class。size class概念很容易理解。

继承的协议为UITraitEnvironment,这个协议中有一个属性traitCollection,一个API traitCollectionDidChange。

这篇博客讲的有关compact和regular的知识很好:http://www.learnswift.io/blog/2014/6/12/size-classes-with-xcode-6-and-swift

经常翻阅吧。

时间: 2024-10-29 19:07:12

Stanford iOS Learn Notes - 5的相关文章

Stanford iOS Learn Notes - 3

题目是iOS Learn Notes,不过这篇文章更多的是梳理了一下过去半个月的弯路:没有跟iOS视频,去看国内的教材去了…… 掐指一算,已经半个月没有更新这个博客了,恍恍惚惚了半个月呀. 其实这半个月也没有闲着,把<Swift语言实战入门>的前8章翻了一下.第8章没有看完,实在看不下去了.怎么评价呢?这本书可以看出来写的时候应该还是用心写了的,最起码不像有些书,直接粘贴复制Swfit的官方文档翻译. 看了也有收获,比如 首先又熟悉了一遍Swift语法.这本书对语法进行了精简提炼,所以通读一遍

Stanford iOS Learn Notes - 8

好久没有写笔记了.这二十天好忙啊,项目要发布,没有太多的时间看iOS了. 现在已经把Stanford的教程学完了,但是感觉很尴尬.其实看代码的时候,感觉没一个Demo都没有什么东西,但是看Demo看时似是而非的看不懂.视频里面,教授用每个API都是信手拈来,但是自己去写,课后看代码的时候,就不是那么回事了.不同的地方改用什么对象,UILable还是UIButton?这个对象都有什么API?这些其实都不知道.而要成为熟练的iOS开发者,这些其实是非常非常重要的. 翻了之前的几遍笔记主要是写了API

Stanford iOS Learn Notes - 1

这段时间在学习Stanford的iOS 8 的教学视频,学而不思则怠,所以准备总结一下看视频学习的一些笔记,便于自己加深理解. 现在已经学了6节课,从这六节课看,前三节课主要是讲了一个Calculator的Demo,并穿插了很少一些iOS的介绍,以及MVC的介绍.第四节主要是介绍了一些Swift的语法,第五节和第六节主要讲述了iOS的触控操作,并且穿插了一些Swift的语法.因此,这篇我把篇笔记分为三部分: 总结一下教授对iOS的简介 总结一下教授在这六节课里面讲的语法 总结一下Happines

Stanford iOS Learn Notes - 2

上一篇文章总结说,Stanford视频前六节需要总结的内容主要分为三部分: 总结一下教授对iOS的简介 总结一下教授在这六节课里面讲的语法 MVC,Cocoa Touch, Happiness Demo 前两部分在上一篇文章里面大概梳理了一下,当时有些知识点的细节没有详解总结,毕竟如果真要总结的话,每个知识点都可展开成一个文章.今天这篇文章主要集中梳理一下第三部分:MVC,Cocoa Touch,Happiness Demo. 1. MVC Divide objects in your prog

Java 8 Learn Notes - Streams

Main reference [1] http://winterbe.com/posts/2014/07/31/java8-stream-tutorial-examples 1. How Streams Work A stream represents a sequence of elements and supports different kind of operations to perform computations upon those elements: List<String>

Bash Scripting Learn Notes (1)

References: [1] http://www.tldp.org/LDP/Bash-Beginners-Guide/html/index.html 1. Executing programs from a script When the program being executed is a shell script, bash will create a new bash process using a fork. This subshell reads the lines from t

Motion Design for iOS

Book Description Motion Design for iOS is a first-of-its-kind guide that explains how to both design & build wonderful, immersive animations for iOS. Learn about the history of animation and motion, the basic principles of engaging animation design i

iOS学习笔记14-网络(三)WebView

一.WebView WebView就是一个内嵌浏览器控件,在iOS中主要有两种WebView:UIWebView和WKWebView,UIWebView是iOS2之后开始使用,WKWebView是在iOS8开始使用,毫无疑问WKWebView将逐步取代笨重的UIWebView. WKWebView的优点: WKWebView更多的支持HTML5的特性 WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/4 WKWebView高达60fps的滚动刷新率和丰富的内置手势 WK

Python爬取CSDN博客文章

之前解析出问题,刚刚看到,这次仔细审查了 0 url :http://blog.csdn.net/youyou1543724847/article/details/52818339Redis一点基础的东西目录 1.基础底层数据结构 2.windows下环境搭建 3.java里连接redis数据库 4.关于认证 5.redis高级功能总结1.基础底层数据结构1.1.简单动态字符串SDS定义: ...47分钟前1 url :http://blog.csdn.net/youyou1543724847/