此文学习来源为: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. BZOJ 4767: 两双手 [DP 组合数]

    传送门 题意: 给你平面上两个向量,走到指定点,一些点不能经过,求方案数 煞笔提一开始被题面带偏了一直郁闷为什么方案不是无限 现在精简的题意.....不就是$bzoj3782$原题嘛,还不需要$Luc ...

  2. POJ 2888 Magic Bracelet [Polya 矩阵乘法]

    传送门 题意:竟然扯到哈利波特了.... 和上一题差不多,但颜色数很少,给出不能相邻的颜色对 可以相邻的连边建图矩阵乘法求回路个数就得到$f(i)$了.... 感觉这样的环上有限制问题挺套路的...旋 ...

  3. 从flexible.js引入高德地图谈起的移动端适配

    曾几何时,前端还仅仅是PC端的.随着移动时代的兴起,h5及css3的推陈出新.前端的领域慢慢的由传统的pc端转入了移动端,这也导致了前端这一职业在风口的一段时间出尽了风头. 从开始的惶恐和无从下手,慢 ...

  4. String类为什么是final的

    首先我们使用new创建一个String对象的时候比如: String str=new String("123"); 这句话里面创建了两个对象,第一个在系统中创建了一个"a ...

  5. 隐藏文件的查看(Win/Linux/macOS)

    Windows(10): 点查看->点选项,弹出文件夹选项,点查看,高级设置里找到隐藏文件和文件夹这个选项,按需求选显示或者隐藏即可. Linux: Linux下,类似于.ssh开头的文件或者文 ...

  6. Python 上下文管理器和else块

    最终,上下文管理器可能几乎与子程序(subroutine)本身一样重要.目前,我们只了解了上下文管理器的皮毛--Basic 语言有with 语句,而且很多语言都有.但是,在各种语言中 with 语句的 ...

  7. 02 浅析Spring的AOP(面向切面编程)

    1.关于AOP AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善.O ...

  8. markdown学习经验

    文章首发于我的github博客 前言 markdown是一种简洁有力的文本编辑语言.由于它十分好用,我将所有的博客都换成了markdown编辑器. 学习方法 工具为先,从工具中学习,熟能生巧. 工具选 ...

  9. nyoj 取石子(七) 环形博弈

    手推前几个可以知道规律:n>2时是P态,n<=2时是N态. 注意:石子拿去后,剩下的石子是分散的. AC代码 #include <cstdio> #include <cm ...

  10. CentOS6实现路由器功能

    网络之间的通信主要是依靠路由器,当然生成环境中是拥有路由器的,但是系统中的路由配置也是需要了解一下地,今天讲解一下在CentOS6环境下搭建路由器,此乃入门级的简单实验.拓扑如上图已经规划好,暂且使用 ...