在UIKit框架中只有一个根制图控制器。视图控制器用来治理界面和解决界面的类对象,程序启动前必须创立根视图控制器。所有视图控制器都须要自定义实现,必须继承于UIViewController 实现。xcode新创建的我的项目默认是通过info.plist 文件配置 main.storyboard 文件主动创立根视图ViewController。继承于UIView
创立根视图控制器
#import "AppDeletegate.h"...code- (void) didFinishLuanchingWithOptions:(NSDictionary *)luanchOptions { // 设置屏幕宽高 self.window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen]]; // 设置视图控制器为window根节点 self.window.rootViewController = [[UIViewController alloc] init];}...code
自定义ViewController
#import "ViewController.h"@implementation ViewController// 当视图控制器第一次被加载显示视图- (void) viewDidLoad{ [super viewDidLoad]; //创立子视图 UIView *view = [[UIView alloc] init]; view.frame = CGReactMake(0, 0, 300, 45); view.backgroundColor = [UIColor greenColor]; // 退出视图 [self.view addSubView:view];}@end增加子视图控制器#import "ViewController.h"@implementation ViewController// 当视图控制器第一次被加载显示视图- (void) viewDidLoad{ [super viewDidLoad]; self.view.backgroundColor = [UIColor blueColor];}// 当屏幕被点击时候触发-(void)touchesBegan:(NNSet<UITouch *> *)touches withEvent:(UIEvent *)event{ UIViewController *sonViewController = [[UIViewController alloc] init]; [self presentViewController: sonViewController animate:YES complation:nil];}@end
API
(void)touchesBegan:(NNSet<UITouch *> *)touches withEvent:(UIEvent *)event
当屏幕被点击时候触发。(void)presentViewController:(UIViewController *) animate:(BOOL) completion:(callbacl)
显示一个视图控制器到屏幕上,参数1:UIViewController 新的视图控制器对象,参数2:animate 是否开启动画成果,参数3:completion: 执行实现后的回调函数,不须要传nil即可。(void)dismissViewControllerAniamted:(BOOL) completion:(callback)
使以后视图控制器在屏幕隐没,参数1:animte 是否开启动画成果,参数2:completion 执行实现后的回调函数,不须要传nil即可。(void)removeFromSuperView
将以后视图实例从父级删除(void)bringSubViewToFront: UIView*
将一个子视图调整到最顶级绘制(void)sendSubViewToBack: UIView*
将一个子视图调整到最低层绘制
#### 生命钩子
(void)viewDidLoad
加载内存时候触发, 通常用于初始化子节点布局和资源应用
(void)viewWillAppear:(BOOL)animated
行将显示时候触发(void)viewDIdLayoutSubviews
布局子组件实现时候触发(void)viewWillLayoutSubviews
当渲染时候布局子组件触发(void)viewDidAppear:(BOOL)animated
曾经显示时触发(void)viewWillDisappear:(BOOL)animated
行将隐没时候触发
(void)viewDidDisappear:(BOOL)animated
隐没时候触发(viod) didReceiveMemoryWarning
当内存不足时候触发