IOS开发之XCode学习009:UIViewController使用

2018/03/06 17:20
阅读数 11

此文学习来源为: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

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部