zoukankan      html  css  js  c++  java
  • 视图控制器

    视图控制器UIViewController,视图控制,在新版本xcode中会默认生成一个ViewController。

    (一)新建UIViewController

    右键->New File添加一个继承自UIViewController的类View1Controller,在viewDidLoad中添加button,并设置button点击事件为关闭此ViewController

        self.view.backgroundColor=[UIColor redColor];
        
        UIButton *closeViewBtn=[[UIButton alloc] init];
        closeViewBtn.backgroundColor=[UIColor blueColor];
        closeViewBtn.frame=CGRectMake(10, 30, 100, 30);
        [closeViewBtn setTitle:@"Close" forState:UIControlStateNormal];
        [closeViewBtn addTarget:self action:@selector(closeView) forControlEvents:UIControlEventTouchDown];
        
        [self.view addSubview:closeViewBtn];

    点击事件

    -(void) closeView
    {
        [self dismissViewControllerAnimated:YES completion:^{}];
    }

    (二)在ViewController中添加一个button用来控制View1Controller的启动出现

        //ViewController
        UIButton *showView1Btn=[[UIButton alloc] init];
        showView1Btn.frame=CGRectMake(10, 470, 100, 30);
        showView1Btn.backgroundColor=[UIColor redColor];
        [showView1Btn addTarget:self action:@selector(showView1:) forControlEvents:UIControlEventTouchDown];
        
        [self.view addSubview:showView1Btn];
    -(void) showView1:(UIButton *)showView1Btn
    {
        View1Controller *view1=[[View1Controller alloc] init];
        [self presentViewController:view1 animated:YES completion:^{}];
    }

    通过上述两步可以实现视图的简单切换。

    (三)视图的生命周期

    在view1Controller中添加如下代码,在其启动过程中可以看到除viewDidLoad外其他方法的触发以及启动顺序

    -(void) loadView
    {
        [super loadView];
        NSLog(@"Load view");
    }
    
    -(void) viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
        NSLog(@"View will appear");
    }
    
    -(void) viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
        NSLog(@"View did appear");
    }
    
    -(void) viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
        NSLog(@"View will disappear");
    }
    
    -(void) viewDidDisappear:(BOOL)animated
    {
        [super viewDidDisappear:animated];
        NSLog(@"View did disappear");
    }
    
    -(void) closeView
    {
        [self dismissViewControllerAnimated:YES completion:^{}];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }

    (四)其他弹窗方式

    [[UIApplication sharedApplication].keyWindow.rootViewController presentViewController: view1 animated: YES completion:nil];
    [[UIApplication sharedApplication].keyWindow.rootViewController dismissViewControllerAnimated:YES completion:^{}];

    在unity生成的工程中可以通过GetAppController().rootViewController获取到根视图,既而进行试图操作,一般插件中用此方法较多

    [GetAppController().rootViewController presentViewController: view1 animated:YES completion:NULL];
    [GetAppController().rootViewController dismissViewControllerAnimated:YES completion:NULL];
  • 相关阅读:
    VS2013无法启动 IIS Express Web解决办法
    浅谈Java中switch分支语句
    instanceof运算符与引用变量的强制类型转换
    Java语言中null与" "的区别
    Java字符串无意识的递归
    不同编程语言实现输出“HelloWorld!”
    用 C# 来守护 Python 进程
    Python核心技术与实战 笔记
    Python3 系列之 并行编程
    Django + Gunicorn + Nginx 部署之路
  • 原文地址:https://www.cnblogs.com/llstart-new0201/p/9690508.html
Copyright © 2011-2022 走看看