OC开发_Storyboard——视图控制生命周期以及NSNotifications

一、生命周期

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移除

 

例子:

 1 //

 2 //  ViewController.m

 3 //  testForNotification

 4 //

 5 //  Created by bos on 15-4-14.

 6 //  Copyright (c) 2015年 axiba. All rights reserved.

 7 //

 8 

 9 #import "ViewController.h"

10 

11 @interface ViewController ()

12 @property (weak, nonatomic) IBOutlet UITextView *content;

13 @property (weak, nonatomic) IBOutlet UILabel *headLine;

14 

15 @end

16 

17 @implementation ViewController

18 

19 - (IBAction)changeTextColorByClickButton:(UIButton*)sender {

20     

21     //control the range of our select

22     [self.content.textStorage addAttribute:NSForegroundColorAttributeName

23                                      value:sender.backgroundColor

24                                      range:self.content.selectedRange];

25     

26 }

27 

28 - (void)viewDidLoad {

29     [super viewDidLoad];

30     // Do any additional setup after loading the view, typically from a nib.

31     

32 }

33 

34 

35 #pragma the view appear

36 -(void)viewWillAppear:(BOOL)animated

37 {

38     [super viewWillAppear:animated];

39     [[NSNotificationCenter defaultCenter] addObserver:self

40                                              selector:@selector(setUserPreferFont)

41                                                  name:UIContentSizeCategoryDidChangeNotification

42                                                object:nil];

43     

44 }

45 

46 #pragma  the view disappear then remove it 

47 -(void)viewWillDisappear:(BOOL)animated

48 {

49     [super viewWillDisappear:animated];

50     [[NSNotificationCenter defaultCenter] addObserver:self

51                                              selector:@selector(setUserPreferFont)

52                                                  name:UIContentSizeCategoryDidChangeNotification

53                                                object:nil];

54 }

55 -(void)setUserPreferFont

56 {

57     self.headLine.font = [UIFont preferredFontForTextStyle:UIFontTextStyleHeadline];

58     self.content.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody];

59 }

60 

61 - (void)didReceiveMemoryWarning {

62     [super didReceiveMemoryWarning];

63     // Dispose of any resources that can be recreated.

64 }

65 

66 @end

 

你可能感兴趣的:(notification)