UIViewController基础篇

UIViewController就最核心的类型之一。而iOS的整个UI开发的核心思想也是MVC的架构,从UIViewController的命名就可以看出它在MVC中所扮演的角色,那就是Controller。

UIViewController基础

首先软件的入口main.m文件起


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

注:调用主框架AppDelegate.h

2.系统一般会默认加载一个故事面板Main.storyboard,我们重新写一个加载故事面板

 1>Info.plist配置文件里面删除 main storyboard file base name

 2>在ViewController.m写如下代码

#import "AppDelegate.h"
#import "ViewController.h"

@interface AppDelegate ()

@end

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    //创建一个Window对象
    //属于AppDelegate的属性
     //UIScreen:表示屏幕硬件类
    //mainScreen:获得主屏幕的信息
    //当前手机屏幕的大小尺寸
    self.window =[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    //创建视图控制器对像
    ViewController *vcRoot = [[ViewController alloc] init];
    //对窗口的根视图控制器进行赋值操作
    //整个UIKit框架中只有一个根视图控制器,属于windowr的属性
    //视图控制器用来管理界面和处理界面的逻辑类对象;
    //程序启动前必须对根视图控制器赋值
    self.window.rootViewController = vcRoot ;
    
    //将Window做为主视图并显示出来
    [self.window makeKeyAndVisible];
    
    return YES;
}

UIViewController使用

1.UIViewController的创建
2.UIViewController的生命周期高级
3.UIWiewController的界面切换

以ViewController.m文件里面加做一个视图在ViewCo02.m创建第个视图

----------------ViewController.m---------------------------------------------------

#import "ViewController.h"
#import "ViewCo02.h"

@interface ViewController ()

@end

@implementation ViewController

//当屏幕被点击时,调用此函数
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //创建视图控制器二
    ViewCo02 *vc = [[ViewCo02 alloc] init];
    //显示一个新的视图控制器到屏幕上
    //p1:新的视图控制器对象(对写VC)
    //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(@"视图即将消失!");
    
}

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

    
}


//当前视图已经消失从屏幕上
//参数:表示是否用动画切换显示的
//当前状态当前视图控视图已经消失从屏幕上
-(void) viewDidDisappear:(BOOL)animated{
    NSLog(@",视图已经消失!");

}

----------------ViewCo02.m--------------------------------------------------

创建ViewCo02继承 UIViewController


#import "ViewCo02.h"

@interface ViewCo02 ()

@end

@implementation ViewCo02

- (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{
    //使用前的控制器消失掉
    //p1:是否有动画效果
    //p2:结束后是否调用功能block块操作
    [self dismissViewControllerAnimated:YES completion:nil];
    
}

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

/*
#pragma mark - Navigation

@end



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值