UI控件6 UIViewController(2)详细解析+纯代码

1.UIViewController的创建
2.UIViewController的生命周期高级
3.UIViewController的界面切换
ViewController.m文件是使用:

#import "ViewController.h"
//调用ViewC02.h文件
#import "ViewC02.h"
@interface ViewController ()

@end

@implementation ViewController

//当屏幕被点击时 调用此函数
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //创建视图控制器二
    ViewC02 * vc = [[ViewC02 alloc]init];
    
    //显示一个新的视图控制器界面到屏幕上
    //函数 presentViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>
    //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.
    
    //改一下背景颜色 用下面代码 程序启动时就会加载ViewController
    self.view.backgroundColor = [UIColor blueColor];
    
    NSLog(@"viewDidLoad! 第一次加载时");//
}

//当视图控制器的视图即将显示时 调用此函数
//视图分为几个状态
//1.显示前(不显示) 2.正在处于显示状态  3.已经被隐藏
//参数animated: 表示是否有动画切换 后显示
- (void)viewWillAppear:(BOOL)animated
{
    NSLog(@"viewWillApper,视图即将显示");
}

//viewWillAppear是成对来出现的
//视图即将消失时调用此函数
//参数animated: 表示是否有动画切换 消失
//实际上调用该函数时 当前的状态 视图还是显示在屏幕上的
//每一次视图显示时都要被调用
- (void)viewWillDisappear:(BOOL)animated
{
    NSLog(@"视图即将消失");
}

//视图已经显示到屏幕后的瞬间调用此函数
//参数animated: 表示是否用动画切换 显示的
//当前状态已经显示到屏幕上
- (void)viewDidAppear:(BOOL)animated
{
    NSLog(@"视图已经显示!");
}

//当前视图已经从屏幕上消失
- (void)viewDidDisappear:(BOOL)animated
{
    NSLog(@"视图已经消失!");
}

//内存过低警告
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

ViewC02.m文件的使用:

#import "ViewC02.h"
#import "ViewController.h"
@interface ViewC02 ()

@end

@implementation ViewC02

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    //控制器二的颜色 橙色
    self.view.backgroundColor = [UIColor orangeColor];
}

//点击当前控制器二的界面屏幕时
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    //使当前的视图控制器消失 给新的腾地方
    //函数 dismissViewControllerAnimated:<#(BOOL)#> completion:<#^(void)completion#>
    //P1:是否有动画效果 P2:结束后是否调用功能block块操作
    [self dismissViewControllerAnimated:YES completion:nil];
    //有错误 Editor placeholder in source file
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

/*
#pragma mark - Navigation

// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/

@end

猜你喜欢

转载自blog.csdn.net/teropk/article/details/81226988