IOS开发之XCode学习009:UIViewController使用
此文学习来源为: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使用的更多相关文章
- IOS开发之XCode学习008:UIViewController基础
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 红色框选部分用A代替,AppDelegate类在程序框架启动时,如果在i ...
- IOS开发之XCode学习011:UISwitch控件
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UIswitch控件,添加UIswitc ...
- IOS开发之XCode学习007:UIWindow对象
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...
- IOS开发之XCode学习012:Slider和ProgressView
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UISlider和UIProgressV ...
- IOS开发之XCode学习010:定时器和视图对象
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.通过点击"启动定时器"按钮 ...
- IOS开发之XCode学习013:步进器和分栏控件
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.定义UIStepper和UISegmente ...
- IOS开发之XCode学习014:警告对话框和等待提示器
此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 1.警告对话框和等待提示器的概念 2.警告对话框 ...
- iOS开发之Xcode常用调试技巧总结
转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...
- iOS开发之Xcode常用调试(Debug)技巧总结
一.Xcode调试技巧之:NSLog 上面也提到了,在我们日常的开发过程中最常见的Debug方式就是打Log.而在OC语言中,打Log是采用NSLog方法.但是NSLog效率低下,具体原因可以看这篇博 ...
随机推荐
- 洛谷 [P2762] 太空飞行计划问题
最大权闭合子图 胡伯涛论文真是个好东西.jpg 求一个有向图的最大权闭合子图,常应用于有先决条件的最优化问题中 将所有正权点与源点相连,容量为点权; 将所有负权点与汇点相连,容量为点权的相反数; 将原 ...
- BZOJ 3782: 上学路线 [Lucas定理 DP]
3782: 上学路线 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 192 Solved: 75[Submit][Status][Discuss] ...
- 关于WebApi 跨域问题的解决的方式
最近在做WebApi 进行开发的时候 一直会遇到跨域方面的问题那么如何进行跨域问题其实非常的简单. 1.一直在使用WebApi的时候总是遇到跨域的问题 那么 什么是跨域?跨域,指的是浏览器不能执行其他 ...
- 使用Spring Boot搭建应用开发框架(一) —— 基础架构
Spring的简史 第一阶段:XML配置,在Spring1.x时代,使用Spring开发满眼都是xml配置的Bean,随着项目的扩大,我们需要把xml配置文件分放到不同的配置文件里,那时候需要频繁的在 ...
- markdown语法探究
\[\sum_{i=1}^n a_i=0\] \[f(x_1,x_x,\ldots,x_n) = x_1^2 + x_2^2 + \cdots + x_n^2 \] \[\sum^{j-1}_{k=0 ...
- golang使用http client发起get和post请求示例
[转自 http://www.01happy.com/golang-http-client-get-and-post/ ] get请求 get请求可以直接http.Get方法,非常简单. 1 2 3 ...
- python学习:调用其他函数
vim wc.py #!/usr/bin/python def wordCount(s): chars = len(s) words = len(s.split()) ...
- Linux终端下 dstat 监控工具
dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品.dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了.dstat可 ...
- 使用nodejs搭建api的mock服务
1. 介绍 公司的业务开发都是静态页面,开发前期总是避免不了获取api的问题.在vue中有一些mockjs的方案,方案都是注入性质的,和最终部署总是有差别,而且业务大部分还在zepto下,很难找到合适 ...
- [翻译] .NET Core 2.1 Preview 1 发布
[翻译] .NET Core 2.1 Preview 1 发布 原文: Announcing .NET Core 2.1 Preview 1 今天,我们宣布发布 .NET Core 2.1 Previ ...