本文主要是介绍视图控制器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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!