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

转载于:https://www.cnblogs.com/yoyocool/p/8515525.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值