文档章节

IOS开发之视图控制器view的生命周期

鹿微微鹿
 鹿微微鹿
发布于 2016/04/13 20:59
字数 816
阅读 39
收藏 0



#import "DiscoverViewController.h"


@interface DiscoverViewController ()


@end


@implementation DiscoverViewController


//视图控制器view的生命周期的方法都是自动调用的

//注意:重写view生命周期的相关方法必须使用super

//先调用父类相关的方法,




//面试的时候会问到view的生命周期;--只调用一次

//开始加载view的时候调用这个方法(但是还没有创建view)

- (void) loadView{

    

    [super loadView];

    

    NSLog(@"正在加载%s",__func__);    

    NSLog(@"想在view属性刚开始创建但是没有创建完成的时候做的事情,写在这儿");

}



//view已经创建完成(包括设置好view相关的属性)后会自动调用这个方法;

//只会被调用一次

- (void)viewDidLoad {

    [super viewDidLoad];

    NSLog(@"加载完成");

    NSLog(@"一般在这儿做视图控制器添加子视图,做当前视图控制器相关的其他设置和一些其他属性初始化");

    //设置背景颜色

    self.view.backgroundColor = [UIColor lightGrayColor];

    

    

}


//view将要显示(还没有显示)的时候会调用这个方法

//这个方法可能被调用多次

- (void)viewWillAppear:(BOOL)animated{

    

    [super viewWillAppear:animated];

    

    NSLog(@"%s",__func__);

    

}


//view已经显示在界面的时候--也有可能调用多次

- (void) viewDidAppear:(BOOL)animated{

    

    [super viewDidDisappear:animated];

    

    NSLog(@"%s",__func__);

    

    

}

//view将要消失的时候会调用这个--也有可能调用多次

- (void)viewWillDisappear:(BOOL)animated{

    

    [super viewWillDisappear:animated];

    

    NSLog(@"%s",__func__);


    

}

//view已经消失的时候会调用这个方法--也有可能调用多次


- (void)viewDidDisappear:(BOOL)animated{

    

    [super viewDidDisappear:animated];

    

    NSLog(@"%s",__func__);


}


//接收到内存警告的时候调用

//面试的时候,

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    

    //一般在这里释放不必要的内存空间

    //清除缓存包括本地和程序的

    


    NSLog(@"%s",__func__);


}




@end



在appdelete.m中设置根视图控制器



#import "AppDelegate.h"

#import "DiscoverViewController.h"

@interface AppDelegate ()


@end


@implementation AppDelegate



- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    

     _window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

    

    [_window setBackgroundColor:[UIColor whiteColor]];

    

    //======================================

    //视图控制器view的生命周期:视图控制器的view属性创建到销毁的过程

    //创建一个视图控制器,如果不去使用这个视图控制器的view

    //那么视图控制器不会去创建它的view属性

    

    //1.创建发现类的对象

    DiscoverViewController *discover = [[DiscoverViewController

                                         alloc]init];

    

   

    //2.将视图控制器作为window的根视图控制器

    self.window.rootViewController = discover;

    

    

    

    

    [_window makeKeyAndVisible];

    


    

    

    

    

    return YES;

}


- (void)applicationWillResignActive:(UIApplication *)application {

    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.

    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.

}


- (void)applicationDidEnterBackground:(UIApplication *)application {

    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.

    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.

}


- (void)applicationWillEnterForeground:(UIApplication *)application {

    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.

}


- (void)applicationDidBecomeActive:(UIApplication *)application {

    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.

}


- (void)applicationWillTerminate:(UIApplication *)application {

    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

}


@end











© 著作权归作者所有

鹿微微鹿
粉丝 8
博文 116
码字总数 71882
作品 0
程序员
私信 提问
UIViewControllerHierarchyInconsistencyException异常

IOS中的MVC MVC模式是一种经典的软件架构模式,基本上懂程序设计的人都了解或应用过MVC模式。多数面向对象的程序设计架构都得益于MVC模式来有效的划分程序中的对象的角色,组织对象之间的耦合...

big军
2013/01/10
2.4K
0
一步一步学习iOS 5编程(第三版)-PDF中文版-正式发布!

目前,这是第一本介绍iOS 5.x 和 Xcode 4.4 的中文版书籍,尤其适合于iOS 编程开发初学者。本教程由 EntLib.com 团队编写。如有任何技术问题,欢迎留言。 电子版 – PDF 格式,支持iPhone、i...

entlib
2012/09/20
795
2
一步一步学习 iOS 6 编程(第四版)正式发布

所有范例程序及其截图都采用Xcode 4.4 和Xcode 4.5 最新版开发工具,本书包含了最新的iOS 6 开发技术,如自动布局(Auto Layout)、集合视图(Collection View)等等。 新增内容包括:分割视...

entlib
2012/10/25
837
2
IOS学习,最简单的表格应用程序,学习,列出博客

IOS编程浅蓝教程,这是博客地址http://www.cnblogs.com/haichao/category/425378.html IOS编程浅蓝教程:锲子 IOS编程浅蓝教程(一)先决条件:开始iOS编程的必要准备 IOS编程浅蓝教程(二) Hel...

andy521zhu
2015/01/17
183
0
UIView Animations 学习笔记(二)定制动画效果及切换效果

目录 UIView Animations 学习笔记(一)简介及API说明 UIView Animations 学习笔记(二)定制动画效果及切换效果 UIView Animation 学习笔记 应用示例 二、视图切换定制 2.1 基础说明 要创建...

灰大羊
2015/08/12
192
0

没有更多内容

加载失败,请刷新页面

加载更多

js中将字符串转换成json的三种方式

使用ajax的开发项目过程中,经常需要将json格式的字符串返回到前端,前端解析成js对象(JSON )。 ECMA-262(E3) 中没有将JSON概念写到标准中,还好在 ECMA-262(E5) 中JSON的概念被正式引入了...

物种起源-达尔文
4分钟前
0
0
centos7下面python3.7安装

我这里使用的是CentOS7,默认系统自带python2.7的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的...

chenhongjiang
9分钟前
1
0
带你入门SpringCloud统一配置 | SpringCloud Config

前言 在微服务中众多服务的配置必然会出现相同的配置,如果配置发生变化需要修改,一个个去修改然后重启项目的方案是绝对不可取的。而 SpringCloud Config 就是一个可以帮助你实现统一配置选...

桌前明月
9分钟前
0
0
9.21 日常记录

先说说最近的状态: 一句话,很不好。缺失了目标感,做什么事都是浑浑噩噩的。 每天都是想着轻松的活路去做复习,没有看书,根本没有去思考如何让自己变得更好。 回想起年初的约定,也是一个...

Garphy
19分钟前
0
0
借助Python 函数进行模块化代码

你是否对函数、类、方法、库和模块等花哨的编程术语感到困惑?你是否在与变量作用域斗争?无论你是自学成才的还是经过正式培训的程序员,代码的模块化都会令人困惑。但是类和库鼓励模块化代码...

问题终结者
22分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部