视图控制器UIViewcontroller

2024-05-28 10:08

本文主要是介绍视图控制器UIViewcontroller,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

视图控制器封装了一个UIView,并且管理某个页面区域的所有视图
视图控制器是模型和视图之间的媒介,模型和视图通过视图控制器来交互
多种类的控制器:UIViewController , UINavigationController , UITableBarController 
视图控制器提供了多种的界面相应方法,以及界面生命周期方法,如监控界面旋转,界面加载等

新建一个类Viewcontroller继承UIViewcontroller

使用自定义控制器一定要子类化UIViewController,一般情况禁止直接使用UIViewController

//控制器入口方法,表示控制器默认视图加载完成,但并未真实显示出来
//自定义界面配置和数据加载
- (void)viewDidLoad{
[super viewDiaLoad];
}


//关联控制器
导入
#import "ViewController.h"

初始化:
//关联window和viewController
//初始化控制器:alloc + init
ViewController *vc = [[ViewController alloc] init];
//window需要一个根控制器作为主体显示的界面
self.window.rootViewCotroller = vc;
[v release];


//初始化用户界面(延展里面)
- (void)initializeUserInterface;

//viewDidLoad里面调用
[self initializeUserInterface];

//实现
- (void)initializeUserInterface{
//view:UIView类型,任何控制器都默认初始化了一个视图,所有自定义视图控件需要添加到这个view上面
//默认情况下视图背景色为透明色
self.view.blackgroundColor = [UIColor whiteColor];    
UILabel *label = [[UILable alloc] init] ;
    label.bounds = CGRectMake(0,0,320,40);
    label.center = CGPontMake(160,80);
//配置显示文本
    label.text = @"ViewController";
//配置字体类型
    label.font = [UIFont systrmFontOfSize:20];
//配置文本对齐方式
    label.textAlignment = NSTextAlignmentCenter;
    label.backgroundColor = [UIColor clearColor];
    [self.view addSubview:label];
    [label release];
}

控制器页面切换

新创建一个控制器DetailViewController
里面写一个返回第一个页面的按钮


导入类
//切换详情页面
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.bounds = CGRectMake(0,0,100,30);
button .center = CGPointMake(160,,480);
//为按钮状态添加标题文字
[button setTile:@"show detail" forState:UIControlStateNormal];
//为按钮对应时间添加触发方法
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];

//Button点击事件
- (void)buttonPressed:(UIButton *)sender{
NSLog(@"%@",NSStringFromSelector(_cmd));
DetailViewController *detail = [[DetailViewController alloc] init];
//控制器页面莫泰切换
//controller:需要推送切换的控制器
//animated:是否需要过度动画
//completion:代码块block类型,页面切换完成之后所需的处理
[self presentViewController:detail animated:YES completion:nil];
/*
[self presentViewController:detail animated:YES completion:^{
      NSLog(@"DetailViewController  show");
}];
*/
[detail release];
}
这样就能进入到另一个界面了
返回原来的界面就是把它自己隐藏了:(新页面新建一个Button)
//模态切换隐藏页面
// presentViewController :模态父控制器 ViewController
//谁显示谁隐藏
[self.presentViewController dismissViewControllerAnimated:YES completion^{
NSLog(@"DetailViewController dismissed");
}


//控制器视图加载完成
- (void)viewDidLoad;
//视图控制器即将被显示
- (void)WillAppear:(BOOL)animated{
[super WillAppear:animated];
}
//视图控制器被显示
- (void)viewDidAppear:((BOOL)animated{
[super viewDidAppear:animated];
}
//视图将要不被显示
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
}
//视图已经没有显示
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
}

这篇关于视图控制器UIViewcontroller的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1010263

相关文章

数据视图(AngularJS)

<!DOCTYPE html><html ng-app="home.controller"><head><meta charset="utf-8"><title>数据视图</title><link href="page/common/css/bootstrap.min.css" rel="stylesheet"><script src="page/common/js/angular.js"></

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

jmeter之仅一次控制器

仅一次控制器作用: 不管线程组设置多少次循环,它下面的组件都只会执行一次 Tips:很多情况下需要登录才能访问其他接口,比如:商品列表、添加商品到购物车、购物车列表等,在多场景下,登录只需要1次,我们期望的是重复执行登陆后面的接口来做压测,这就和事务相关,例如 事务1: 登录—>添加购物车 事务2: 登录—>购物车列表 事务3: 登录—>商品列表—>添加购物车 … 一、仅一次控制器案例 在

架构全景视图

文章目录 一、战略规划二、业务架构Business Architecture2.1业务架构定义2.2 业务架构组成2.3 TOGAF2.3.1 Archimate建模(重要) 三、数据架构Data Architecture3.1 数据架构定义3.2 数据架构组成 四、应用架构Application Architecture4.1 应用架构定义4.2 应用架构组成 五、技术架构Technol

为控制器的方法添加必要参数

前言:做这个系统时,要求每次调用接口时要传操作人、操作人电脑ip、菜单id,然后计入log。本来前端读取到然后加入请求头,后端写入log即可。但是老大要求后端也要把控必传参数,避免前端忘记。所以就写了这个。IOperationFilter 这个是百度知道的。主要用于在Swagger生成的API文档中动态地添加或修改操作(即API接口)的元数据。 用处:可以自动地为 Swagger/OpenAPI

2409wtl,切换视图

原文 介绍 我从一个基于SDI(单文档接口)WTL向导的应用开始,添加了一些从控件继承的窗口和一些对话框窗口(表单视图),然后才发现我必须,使SDI框架动态加载和卸载子窗口. 本文演示了两个可用来完成的技术:在SDI应用中的视图间动态切换.这是我使用的两个. 技术 1技术:第一个方法涉及按需析构和重建视图实例.这更简单,且在不介意析构和重建窗口对象时效果很好. 2:按需创建视图,然后用

IBM Storwize V7000存储控制器故障节点报错574

背景:由于客户机房搬迁,需要下电迁移设备。该存储自2016年投入生产使用后,从未关过机,已正常运行七八年时间,期间只更换过硬盘,无其他硬件故障。 在GUI界面点击关闭系统后,大概等了40分钟,存储仍未关机,所有硬盘状态灯绿色常亮,面板无报错。到设备后面看控制器的状态,发现node2已经正常关机了,node1仍然在运行,又等了大概20分钟还没有关机,直接将电源线给拔掉了。 再次上电以后,发现

Django 第十七课 -- 视图 - FBV 与 CBV

目录 一. 前言 二. FBV 三. CBV 一. 前言 FBV(function base views) 基于函数的视图,就是在视图里使用函数处理请求。 CBV(class base views) 基于类的视图,就是在视图里使用类处理请求。 二. FBV 基于函数的视图其实我们前面章节一直在使用,就是使用了函数来处理用户的请求,查看以下实例: 路由配置: urlpat

android 动画 ——视图动画(View Animation)

android动画分为视图动画(View Animation)、属性动画(Property Animation) 想看属性动画(Property Animation):请移步至http://blog.csdn.net/u013424496/article/details/51700312 这里我们来说下视图动画(View Animation)的纯代码写法,还有一种是xml调用, 对于xml调

【mysql 视图】Mysql视图的创建

什么是视图? 视图是由查询结果形成的一张虚拟表。也就是我们可以理解为就是一种类似于表的数据对象。 什么时候要用到视图? 如果某个查询结果出现的非常频繁,也就是,要经常拿这个查询结果来做子查询。 视图与表的关系? 视图是表的查询结果,自然表的数据变了,会影响视图的结果。 创建视图 CREATE VIEW v_person as SELECT * from persons; SEL