一、生命周期

1、ViewDidLoad: 一般的初始化,除了几何图形的初始化(这个时候还没确定)

2、ViewWillAppear: 代表你的视图将要在屏幕上显示,可能会调用多次,对不可见时可能能改变的内容进行同步 (例如模型改变的时候调用显示改变的数据)

3、ViewWillDisappear 不在屏幕不再占用资源时,记住、恢复、停止

4、didRecevierMemoryWarning 手机运行占用很大空间,例如图像、视频:释放内存,处理内存警告(系统决定)

具体的生命周期是这样的:

(1 从storyboard中进行实例化,或者通过调用all从或者init,

(2 如果是从storyboard中出来的,就会调用awakeFromNib,不然就是调用initWithNibName bundle

(3 viewDidLoad

(4 当几何内容被确定之后,viewWillLayoutSubview和viewDidlayoutSubviews被调用

(5.1 viewWillappear和viewDidappear会被调用

(5.2 viewWillDisappear和viewDidDisappear会被调用 (如果几何内容有变化,viewWillLayoutSubview和viewDidlayoutSubviews会再次被调用)

(6 didRecevierMemoryWarning

二、NSNotifications 广播站机制(通知)

结束收听之后,要移除自己【不安全指针】,可以在dealloc移除

例子:

 //
// ViewController.m
// testForNotification
//
// Created by bos on 15-4-14.
// Copyright (c) 2015年 axiba. All rights reserved.
// #import "ViewController.h" @interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextView *content;
@property (weak, nonatomic) IBOutlet UILabel *headLine; @end @implementation ViewController - (IBAction)changeTextColorByClickButton:(UIButton*)sender { //control the range of our select
[self.content.textStorage addAttribute:NSForegroundColorAttributeName
value:sender.backgroundColor
range:self.content.selectedRange]; } - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. } #pragma the view appear
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(setUserPreferFont)
name:UIContentSizeCategoryDidChangeNotification
object:nil]; } #pragma the view disappear then remove it
-(void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(setUserPreferFont)
name:UIContentSizeCategoryDidChangeNotification
object:nil];
}
-(void)setUserPreferFont
{
self.headLine.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];
self.content.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];
} - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
} @end

OC开发_Storyboard——视图控制生命周期以及NSNotifications的更多相关文章

  1. (5/18)重学Standford_iOS7开发_视图控制器生命周期_课程笔记

    第五课: 1.UITextView @property (nonatomic, readonly) NSTextStorage *textStorage;//注意为只读属性,因此不能直接更改内容,NS ...

  2. ios开发----视图的生命周期

    熟悉web开发的朋友可能对页面page的生命周期有一定的了解和认识,正如web开发中的页面生命周期一样,移动客户端开发也有它自己的生命周期.下文将说明ios开发中视图的生命周期既运行顺序. 在ios视 ...

  3. 玩转iOS开发 - 视图控制器生命周期

    视图控制器生命周期

  4. iOS10 UI教程视图的生命周期

    iOS10 UI教程视图的生命周期 说到视图的生命周期一般都是指视图控制器的视图生命周期.在视图的声明周期中最主要的有8个方法,分别为loadView().viewDidLoad().viewWill ...

  5. atitit.提升开发效率---使用服务器控件生命周期 asp.net 11个阶段 java jsf 的6个阶段比较

    atitit.提升开发效率---使用服务器控件生命周期  asp.net 11个阶段  java jsf 的6个阶段比较 如下列举了服务器控件生命周期所要经历的11个阶段. (1)初始化-- --在此 ...

  6. iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建)

    iOS开发UI篇—UITabBarController生命周期(使用storyoard搭建)   一.UITabBarController在storyoard中得搭建 1.新建一个项目,把storyb ...

  7. Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解

    前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activ ...

  8. Java开发学习(十一)----基于注解开发bean作用范围与生命周期管理

    一.注解开发bean作用范围与生命周期管理 前面使用注解已经完成了bean的管理,接下来将通过配置实现的内容都换成对应的注解实现,包含两部分内容:bean作用范围和bean生命周期. 1.1 环境准备 ...

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

    ViewController ViewController是IOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内 ...

随机推荐

  1. navicat导入csv

    1.navicat for mysql 导入csv时出错,主要是由于csv中包含汉字所致: 2.解决办法为再host新连接时,选择高级,然后在编码菜单里选择20936 (Simplified Chin ...

  2. nodejs基础 -- NPM 使用介绍

    npm:是nodejs的包管理工具,随NodeJS一起安装的,能解决NodeJS代码部署上的很多问题,如: 1.允许用户从NPM服务器下载别人编写的第三方包到本地使用. 2.允许用户从NPM服务器下载 ...

  3. 用cxf生成webservice的java客户端代码

    百度来的: 最近,由于要用到某公司提供的webservice实现的api接口,想到了用cxf的wsdl2java工具来生成客户端程序.(自己写是比较麻烦且费时,so偷懒一下..) 使用步骤如下: 一. ...

  4. Python调用打印机参考例子

    参考资料: http://blog.csdn.net/jdh99/article/details/42585987 http://www.oschina.net/question/1438043_23 ...

  5. CentOS显示设置时间命令- date

    概要: date命令的功能是显示和设置系统日期和时间 命令格式: date [OPTION]... [+FORMAT]date [-u|--utc|--universal] [MMDDhhmm[[CC ...

  6. HBase源代码分析之MemStore的flush发起时机、推断条件等详情

    前面的几篇文章.我们具体介绍了HBase中HRegion上MemStore的flsuh流程,以及HRegionServer上MemStore的flush处理流程.那么,flush究竟是在什么情况下触发 ...

  7. linux配置java环境

    第一步: vim /etc/profile 第二步:添加以下4行 第三步:使配置生效 source /etc/profile 结束配置

  8. 调用外部 DLL 中的函数(2. 晚绑定)

    , b, t, );end; procedure TForm1.FormDestroy(Sender: TObject);begin  FreeLibrary(inst);  {记得释放}end; e ...

  9. Ubuntu下 Oracle sqldeveloper中文目录、文件,select查询结果中:中文乱码

    是由于JDK所致.下面是网上的解决方案 解决案例1: .0_24/jre/lib/fonts.进入到fonts目录,新建文件夹 fallback cd /usr/java/jdk1..0_24/jre ...

  10. 理解ros话题--6

    理解ROS话题(原创博文,转载请标明出处--周学伟http://www.cnblogs.com/zxouxuewei/) Description: 本教程介绍ROS话题(topics)以及如何使用ro ...