iOS入门-07UIViewController

概述

UIViewController作为页面和Android中的Activity以及Flutter中的Route意义相同,每一个UIViewController相当于一个页面。

本文重点
  • UIViewController创建
  • UIViewController生命周期
  • UIViewController跳转

示例

UIViewController创建

在日常开发中我们能够操作的整个应用程序的启动类为AppDelegate,而新建工程中ViewController则是第一个页面,我们什么都不用处理只要从ViewController开始写起就可以了。ViewController作为整个app的主页面也是第一个页面。当然如果你是在想换掉它也是可以的,自己去写一个类继承UIViewController然后添加为根视图控制器中。

一个简单的例子:从一个页面跳转到另一个页面,代码如下很简单,主要看注释并自己运行了解各个生命周期函数调用的时机。
第一个页面:
#import "ViewController.h"
#import "SecondViewController.h"

@interface ViewController ()

@end

@implementation ViewController
//页面第一次加载时调用,只调用一次
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    NSLog(@"viewDidLoad");
    //添加个button,点击跳转到新页面
    UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    
    btn.frame = CGRectMake(40, 40, 100, 50);
    
    [btn setTitle:@"to second" forState:UIControlStateNormal];
    //给button添加点击事件
    [btn addTarget:self action:@selector(click) forControlEvents:(UIControlEventTouchUpInside)];
    
    [self.view addSubview:btn];
}

-(void) click{
    //将要跳转新页面
    SecondViewController* sVC = [SecondViewController new];
    //设置新页面是全屏
    sVC.modalPresentationStyle = UIModalPresentationFullScreen;
    //跳转到新页面
    [self presentViewController:sVC animated:YES completion:nil];
}

//视图将显示
-(void) viewWillAppear:(BOOL)animated{
    NSLog(@"viewWillAppear");
}
//视图显示瞬间
-(void) viewDidAppear:(BOOL)animated{
    NSLog(@"viewDidAppear");
}
//视图将消失
-(void) viewWillDisappear:(BOOL)animated{
    NSLog(@"viewWillDisappear");
}
//视图消失瞬间
-(void) viewDidDisappear:(BOOL)animated{
    NSLog(@"viewDidDisappear");
}

//内存过低警告接受函数
-(void) didReceiveMemoryWarning{
    [super didReceiveMemoryWarning];
    
}
@end
第二个页面:

创建一个新UIViewController文件很简单,如下操作
选中要新建文件的目标文件夹,本例子中使用根文件夹,然后File->New->File
在这里插入图片描述

然后选择如下
在这里插入图片描述
点击Next
在这里插入图片描述

ok,创建完毕,如下

#import "SecondViewController.h"

@interface SecondViewController ()

@end

@implementation SecondViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    //添加一个有颜色的view
    UIView* view = [UIView new];
    
    view.frame = CGRectMake(100, 100, 100, 100);
    
    view.backgroundColor = [UIColor redColor];
    
    self.view.backgroundColor = [UIColor whiteColor];
    
    [self.view addSubview:view];
}

//点击屏幕任意一点出发此回调
-(void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
    //退出当前页面
    [self dismissViewControllerAnimated:YES completion:nil];
}
@end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值