zoukankan      html  css  js  c++  java
  • UISB UIViewController

    main.m

    #import <UIKit/UIKit.h>
    #import "AppDelegate.h"
    
    //整个APP程序的主函数 入口函数
    
    
    int main(int argc, char * argv[]) {
        NSString * appDelegateClassName;
        
        //自动内存释放池
        @autoreleasepool {
            // Setup code that might create autoreleased objects goes here.
            appDelegateClassName = NSStringFromClass([AppDelegate class]);
        }
        //UIKit 框架结构的启动函数
        //参数一 agrc 启动时带有参数的个数
        //参数二 argv 参数列表
        //参数三 要求传人一个主框架类对象,如果参数为nil 系统会用默认框架类作为主框架类名
        //参数四 主框架的代理类的名字
        
        return UIApplicationMain(argc, argv, nil, appDelegateClassName);
    }

    SceneDelegate.m

    #import "ViewController.h"
    #import "SceneDelegate.h"
    
    @interface SceneDelegate ()
    
    @end
    
    @implementation SceneDelegate
    
    
    - (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
       
        //创建一个window对象
        //UISCreen :表示屏幕硬件类
        //mainSCreen: 获取主屏幕对象
        //.bounds 获取当前主屏幕的大小
        
        if (@available(ios 13, *)) {
        if (scene) {
                self.window = [[UIWindow alloc] initWithWindowScene:(UIWindowScene *)scene];
                self.window.frame = CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);
    //            self.window.backgroundColor=[UIColor redColor];
            
        
                //创建视图控制器对象
                ViewController* vcroot =[[ViewController alloc] init];
                
                //对窗口的根视图控制器进行赋值操作 属于windows属性
                //整个UIKit框架中只有一个根视图控制器 属于windows的属性
                //视图控制器用来管理界面和处理界面逻辑类对象
            
                //程序启动前必须对根视图控制器赋值
                
                self.window.rootViewController=vcroot;
                
                //将windos作为主视图并且显示出来
                [self.window makeKeyAndVisible];
                
                
        
        }
            
        }
        
        
    }

    UIViewController.m

    #import "ViewController.h"
    
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    //当视图控制器第一次被加载显示视图时,调用此函数
    //布局初始化视图来使用,初始化资源使用
    //调用父类的加载视图函数
    - (void)viewDidLoad {
    
        
        [super viewDidLoad];
        
        UIView* view =[[UIView alloc]init];
        
        view.frame=CGRectMake(100, 100, 100, 200);
        
        //将视图添加在当前控制视图上
        [self.view addSubview:view];
        view.backgroundColor=[UIColor orangeColor];
        self.view.backgroundColor=[UIColor blueColor];
        
    
    }
    
    
    @end

    UIViewController 使用

    ViewController.m

    #import "ViewController.h"
    #import "ViewC02.h"
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
    
    //当屏幕点击时调用此函数
    -(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];
        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,视图已经消失");
    }
    
    
    @end

    ViewC02.m

    #import "ViewC02.h"
    
    @interface ViewC02 ()
    
    @end
    
    @implementation ViewC02
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        //控制器2颜色
        self.view.backgroundColor=[UIColor orangeColor];
    }
    
    //点击当前控制器二界面屏幕时
    -(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
    {
        //使当前控制器消失掉
        //P1: 是否动画效果
        //P2: 结束后是否调用功能
        
        [self dismissViewControllerAnimated:YES completion:nil];
        
    }
    
    @end
  • 相关阅读:
    C博客作业01分支、顺序结构
    C语言博客作业03函数
    AVR速度很快功能挺强
    盗取账户密码的代码,额,囧
    ANSI,ASCII,Unicode的区别与联系
    DIV特效汇
    IAR for AVR 学习笔记
    PLSQL Developer连接Oracle10g失败
    vs2008 framework 当前不会命中断点 还没有为该文档加载任何符号
    UDP协议
  • 原文地址:https://www.cnblogs.com/zhangqing979797/p/13648856.html
Copyright © 2011-2022 走看看