此文学习来源为:http://study.163.com/course/introduction/1002858003.htm

此工程文件实现功能:

通过点击屏幕事件,调用ViewController相关生命周期函数(viewWillAppear、viewWillDisappear、viewDidDisappear、viewDidAppear)

todo...

遇到点小Bug:

1、viewDidLoad方法被多次调用

2、当每次点击橘色屏幕时,调用了viewWillAppear和viewDidAppear方法

暂时还不知道原因。。。

===========================ViewController.m脚本==============================

#import "ViewController.h"

//引入新创建的视图控制器(继承于ViewController)

#import "ViewC02.h"

//当屏幕被点击时,调用此函数

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

//创建视图控制器

ViewC02* vc = [[ViewC02 alloc] init];

//显示一个新的视图控制器到屏幕上

//P1:新的视图控制器对象

//P2:是否使用动画切换效果

//P3:切换结束后功能调用,不需要传nil值即可

[self presentViewController:vc animated:YES completion:nil];

}

//第一次程序加载视图时调用

- (void)viewDidLoad {

[super viewDidLoad];

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

self.view.backgroundColor = [UIColor blueColor];

NSLog(@"viewDidLoad!第一次加载视图!");

}

//当视图控制器的视图即将显示时,调用此函数

//视图分为:1、显示前 2、正在处于显示状态 3、已经被隐藏

//参数:表示是否用动画切换后显示

//每一次视图要显示时都会调用

-(void) viewWillAppear:(BOOL)animated

{

NSLog(@"viewWillAppear,视图即将显示!");

}

//当视图即将消失时,调用此函数

//参数:表示是否用动画切换后消失

//当前的状态:视图还是显示在屏幕上的

-(void) viewWillDisappear:(BOOL)animated

{

NSLog(@"viewWillDisappear,视图即将消失!");

}

//当视图已经显示到屏幕后的瞬间调用此函数

//参数:表示是否用动画切换显示的

//当前状态:已经显示到屏幕上了

-(void) viewDidAppear:(BOOL)animated

{

NSLog(@"viewDidAppear,视图已经显示!");

}

//当前视图已经从屏幕消失

//参数:表示是否用动画切换消失的

//当前状态:视图已经从屏幕上消失

-(void)viewDidDisappear:(BOOL)animated

{

NSLog(@"viewDidDisappear,视图已经消失!");

}

//内存过低警告接收函数

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

===========================ViewC02.m脚本==============================

创建新的视图控制器:

File-->New-->File(快捷键command + N),点击,选择ios/Source/Cocoa Touch Class,Next,然后Subclas of选择ViewController,Class取名ViewC02,Create。 

- (void)viewDidLoad {

[super viewDidLoad];

//控制器二的颜色为橙色

self.view.backgroundColor = [UIColor orangeColor];

}

//点击当前控制器二的界面屏幕时

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event

{

//使当前的控制器消失掉

//P1:是否使用动画切换效果

//P2:切换结束后功能调用block块,不需要传nil值即可

[self dismissViewControllerAnimated:YES completion:nil];

}

学习总结:

  • 重点:UIViewController的界面切换
  • 难点:UIViewController的生命周期

源码链接地址:https://pan.baidu.com/s/1yrOLXZZeu9MiOWtMq5-EGA  密码:7t1l

IOS开发之XCode学习009:UIViewController使用的更多相关文章

  1. IOS开发之XCode学习008:UIViewController基础

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 红色框选部分用A代替,AppDelegate类在程序框架启动时,如果在i ...

  2. IOS开发之XCode学习011:UISwitch控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIswitch控件,添加UIswitc ...

  3. IOS开发之XCode学习007:UIWindow对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...

  4. IOS开发之XCode学习012:Slider和ProgressView

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UISlider和UIProgressV ...

  5. IOS开发之XCode学习010:定时器和视图对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.通过点击"启动定时器"按钮 ...

  6. IOS开发之XCode学习013:步进器和分栏控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIStepper和UISegmente ...

  7. IOS开发之XCode学习014:警告对话框和等待提示器

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.警告对话框和等待提示器的概念 2.警告对话框 ...

  8. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...

  9. iOS开发之Xcode常用调试(Debug)技巧总结

    一.Xcode调试技巧之:NSLog 上面也提到了,在我们日常的开发过程中最常见的Debug方式就是打Log.而在OC语言中,打Log是采用NSLog方法.但是NSLog效率低下,具体原因可以看这篇博 ...

随机推荐

  1. MySQL实现差集(Minus)和交集(Intersect)

    原文链接: http://www.linuxidc.com/Linux/2014-06/103551.htm MySQL没有实现Minus和Intersect功能,就像它也没有实现cube的功能一样. ...

  2. for in 在数组和json中

    数组中也有for--in,相较于对象中的用法是有区别的:数组中 var arr = ['曹操','曹植','曹丕'] for(i in arr){ console.log(i) //0 1 2 con ...

  3. 深入研究Spark SQL的Catalyst优化器(原创翻译)

    Spark SQL是Spark最新和技术最为复杂的组件之一.它支持SQL查询和新的DataFrame API.Spark SQL的核心是Catalyst优化器,它以一种新颖的方式利用高级编程语言特性( ...

  4. 重写equals()和hashCode()

    什么时候需要重写equals()? 只有当一个实例等于它本身的时候,equals()才会返回true值.通俗地说,此时比较的是两个引用是否指向内存中的同一个对象,也可以称做是否实例相 等.而我们在使用 ...

  5. Xshell配置SSH秘钥登录

    秘钥生成 生成公钥 工具 -> 新建用户秘钥生成向导 -> 下一步 -> 点击下一步,输入密码: 点击下一步 点击保存为文件,完成. 生成私钥 工具 -> 用户秘钥管理者 选中 ...

  6. git 版本控制的简单应用

    一.通过 honebrew 安装git , 教程参考:http://brew.sh/index_zh-cn.html 也可对比参考:http://book.51cto.com/art/201107/2 ...

  7. ansible实践3-playbook条件判断

    --- - hosts: testhost   user: root   gather_facts: True   tasks:     - name: use when       shell: t ...

  8. css里面如何设置body背景图片满屏

    @{    Layout = null;    ViewBag.Title = "Login Page";} <!DOCTYPE html> <html>& ...

  9. easyui验证扩展

    问题描述: 如上所示:当用户添加信息时,必须保证一个队伍一天只能有一条数据.所以在选择了报表日期的时候必须查询数据库里面当前队伍这一天的数据是否存在.如果不存在,即当前日期队伍没有数据,就可以进行数据 ...

  10. python并发编程之多进程(一):进程开启方式&多进程

    一,进程的开启方式 利用模块开启进程 from multiprocessing import Process import time,random import os def piao(name): ...