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];
  • 相关阅读:
    大象中原
    自己动手,编写神经网络程序,解决Mnist问题,并网络化部署-网络化部署
    自己动手,编写神经网络程序,解决Mnist问题,并网络化部署-编写网络
    py4CV例子2.5车牌识别和svm算法重构
    py4CV例子3Mnist识别和ANN
    【CC评网】2013.第41周 不求排版,简单就好
    【CC评网】2013.第39周 漂亮的作息表
    【CC评网】2013.第38周 要阅读 要有好工具
    书评 《软件随想录》
    BerkeleyDB 多索引查询
  • 原文地址:https://www.cnblogs.com/llstart-new0201/p/9690508.html
Copyright © 2011-2022 走看看