视图控制器的View创建方式

UIViewContrller 有三种创建方式:

1.通过alloc init直接创建。

2.通过故事版创建。

3.通过xib文件描述。

这是appDelegate.m的内容

  //window的颜色是绿色
    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor greenColor];

    /**
     第一种:直接alloc init 创建控制器,控制器会自动创建一个view,上面什么也没有
     */
   // XBViewController * vc = [[XBViewController alloc]init];

    /**
     *  第二种:通过故事版创建控制器,这时候控制器的视图就是故事版上面视图描述的那样
     故事版上面的控制器要和本类进行关联
     */

    UIStoryboard * storyBoard = [UIStoryboard storyboardWithName:@"XBVC" bundle:nil];
    XBViewController *vc = [storyBoard instantiateViewControllerWithIdentifier:@"XBVC"];
    self.window.rootViewController = vc ;//给根控制器赋值

    /**
     第三种:通过xib文件的方式创建
     步骤:
     1.xib的file owner要设置成本类,并且需要手动
     2.进行将本类的view属性个xib上的视图进行关联
     */

    XBViewController * vc = [[XBViewController alloc]initWithNibName:@"XBViewController" bundle:nil];

    /*当所在的xib的名字和视图控制器本身名字一致的时候直接调用init也会通过
     默认的xib进行创建
     */
    XBViewController * vc  = [[XBViewController alloc]init];

    /*
     当没有和控制器的文件名字一样的xib文件,若有XBView这样类型也是可以的
     */
    XBViewController * vc  = [[XBViewController alloc]init];

    self.window.rootViewController = vc ;
    [self.window makeKeyAndVisible];//呈现根控制器

XBViewController.m

/**
 *  loadView方法里用来建立自己需要的视图,当需要进行延长加载视图的时候可以在这里自己
 定义。只要重写了这个方法,不论控制器是从故事版还是xib创建。统统无效。

 这个方法出现在viewDidLoad前,在这里self.view 是空的,需要自己创建

 而且必须创建,否则会陷入死循环!!,除非调用了[super loadView];

 该方法结束后,必须保证self.view不为空,否则会自己调用自己

 */

- (void)loadView
{
//    [super loadView]; //不写这个代码而且不为self.view 创建对象会死机
////    self.view = [[UIView alloc]init];
//    self.view.backgroundColor = [UIColor blueColor];
//    UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 300, 300, 30)];
//    [email protected]"现在的视图是loadView里面创建的";
//    [self.view addSubview:label];
   NSLog(@"loadView");
}
//视图加载完成后会调用这个方法,不论是通过系统自己生成的默认的view的方式,还是故事版,xib。
- (void)viewDidLoad {
    [super viewDidLoad];
    UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(20, 100, 250, 30)];
    label.text=@"这里viewDidLoad里面的view";
    [self.view addSubview:label];
    NSLog(@"视图加载完成");
}

控制器视图的创建方式:

控制器的生命周期图

时间: 2024-12-31 17:01:32

视图控制器的View创建方式的相关文章

Swift - iOS中各种视图控制器(View Controller)的介绍

在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来作为子类,以向屏幕中添加逻辑. 2,导航控制器 - Navigation Controller 这个控制器呈现一个视图控制器的栈,应用程序可以在上面推入更多的视图控制器. 当新视图推入栈,或旧视图弹出栈时,导航控制器会以动画的形式(比如卷动)显示隐藏这些视图. 使用样例:系统“设置”应用程序 3,表

IOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用

一.pickerView简单使用 1.UIPickerViewDataSource 这两个方法必须实现 // 返回有多少列 - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView; // 返回第component有多少行 - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component;

控制器的多种创建方式

转载自:http://www.cnblogs.com/wendingding/p/3770605.html 说明:控制器有三种创建方式,下面一一进行说明. 一.第一种创建方式(使用代码直接创建) 1.创建一个空的IOS项目. 2.为项目添加一个控制器类. 3.直接在代理方法中创建一个控制器. 1 #import "YYAppDelegate.h" 2 #import "YYViewController.h" 3 4 @implementation YYAppDele

iOS 7:用代码解决视图控制器的View整体上移问题

如果你准备将你的老的 iOS 6 app 迁移到 iOS 7 上,那么你必须注意了.当你的老的 app 在 iOS 7 设备上运行时,所有ViewController 的视图都整体上移了,因为 iOS 7 把整个屏幕高度(包括状态栏和导航栏)都作为了视图控制器的有效高度.于是你的视图上移了,并和上层的状态栏交叠在一起. 你当然可以在 Xcode 中修改每个 View,将他们下移20个像素(状态栏高度)或者64个像素(状态栏+导航栏高度). 但是苹果显然已经考虑到这个问题,他们在 iOS 7 SD

iOS控制器常见的创建方式有以下几种

>通过storyboard创建 >直接创建 YTViewController *yt = [[YTViewController alloc]init]; >指定xib文件来创建 YTViewController *yt = [[YTViewController alloc]initWithNibName:@"YTViewController" bundle:nil];

视图控制器的生命周期

  补充: NSLog(@"%s",__func__);//这句话可以打印什么类中的什么方法 一     什么是视图控制器 (1)视图控制器就是用来“控制”或者“管理”界面(视图)的 控制器就是创建控件和给控件传递数据的 “换句话说界面长得丑与美由视图控制器说的算” (2)每个视图控制器(UIViewController)都有一个View属性来描述界面长什么 二 视图控制器的创建方式 (1)UIStoryboard的方式 UIStoryboard * storyboard = [UIS

iOS Programming View Controllers 视图控制器

iOS Programming View Controllers? 视图控制器? 1.1? A view controller is an instance of a subclass of UIViewController. 一个view controller 是一个UIViewController的子类. A view controller manages a view hierarchy. 一个view controller 管理一个视图树. It is responsible for c

【IOS开发—视图控制器】

一.UIViewController 视图控制器是UIViewController类或者其子类对象,每个视图控制器都负责管理一个视图层次结构.在UIViewController中有一个重要的UIView属性, 这个view就是这个视图层的根视图,当程序将view作为子视图加入窗口时,也会加入UIViewController对象所管理的整个视图层次结构. 视图控制器只有在将某个视图显示在屏幕上时,相应的视图控制器才会创建其视图,这种延迟加载视图的做法能提高内存的使用效率.视图控制器创建视图的方式有

学习模型-视图-控制器MVC模式

MVC简介: MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式.MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式: Model(模型)表示应用程序核心(比如数据库记录列表). View(视图)显示数据(数据库记录). Controller(控制器)处理输入(写入数据库记录). MVC 模式同时提供了对 HTML.