UIKit框架(6)控制器view的加载方式

本篇文章,总结控制器管理的view是如何创建而来的,以及Xcode对控制器view创建的隐含规则

  • 创建方式

方式一:alloc+init方式,空白view

应当在控制器的viewDidLoad方法中添加要对view进行的各种操作

方式二:alloc+initWithNib方式,即view是由xib设计的

方式三:从UIStoryboard对象加载的,即view是由storyboard设计的

方式四:重写控制器的loadView方法,该方法内进行创建view

如:

- (void)loadView
{
    self.view = [[UIView alloc] init];
    self.view.backgroundColor = [UIColor grayColor];
}
  • Xcode对控制器view创建的隐含规则

先看下面的流程图:(控制器类名:AMViewController)

结论:

1. 如果控制器 实现了 loadView方法,view从loadView方法中进行创建

2. 如果由storyboard加载,则加载storyboard中设计的

3. 如果由xib架子啊,则加载xib中设计的

4. 如果项目中包含一个名字为AMView.xib的文件,则view由xib加载

5. 如果项目中包含一个名字为AMViewContoller.xib,则view由xib加载

6. 创建一个空的view

时间: 2024-10-15 11:37:36

UIKit框架(6)控制器view的加载方式的相关文章

iOS之控制器View的加载

首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载.loadView有什么作用,它与viewDidLoad有何区别. loadView方法 当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断view是否已经创建,如果已存在,则直接返回存在的view,如果不存在,则调用控制器的loadView方法,在控制器没有被销毁的情况下,loadView也可能会被执行多次 viewDidLoad方法 当控制器的loadView方法执行完毕,v

控制器View的加载过程

1.控制器内部的view是延迟加载 1> 用到时再加载2> 加载完毕后会调用控制器的viewDidLoad方法 2.创建控制器的方式 1> 直接通过代码创建OneViewController *one = [[OneViewController alloc] init]; 如果调用init方法创建控制器(TwoViewController),那么在加载控制器view的时候: a.优先查找 “TwoView.xib” b.其次再查找 同名 的xib 文件 “TwoViewControlle

iOS之深入了解控制器View的加载

在面试中,面试官可能会问这样的问题,loadView有什么作用,它与viewDidLoad有何区别 首先我们得知道,控制器view是通过懒加载的方式进行加载的,即用到的时候再加载. loadView方法 当我们用到控制器view时,就会调用控制器view的get方法,在get方法内部,首先判断view是否已经创建,如果已存在,则直接返回存在的view,如果不存在,则调用控制器的loadView方法,在控制器没有被销毁的情况下,loadView也可能会被执行多次 viewDidLoad方法 当控制

控制器view的加载顺序initWithNibName >>> viewDidLoad >>> viewWillAppear >>> viewDidAppear

-(void)viewWillAppear:(BOOL)animated { self.navigationController.navigationBarHidden=NO;// 邓超界:放在willAppear,不能放在viewDidLoad(因为先执行viewDidLoad,再执行viewWillAppear.还有当控制器没有dealloc,viewDidLoad不会在执行了) } 执行顺序: initWithNibName >>> viewDidLoad >>>

iOS开发之控制器创建与加载(生命周期)

1.如何创建一个控制器 控制器常见的创建方式有以下几种: (1)通过storyboard创建 (2)直接创建 MJViewController *mj = [[MJViewController alloc] init]; (3)指定xib文件来创建 MJViewController *mj = [[MJViewController alloc] initWithNibName: @"MJViewController" bundle:nil]; 注意,创建xid后还要设置xid中哪个vi

源码03-02-09-控制器View懒加载

// // AppDelegate.m // 09-控制器View懒加载 #import "AppDelegate.h" #import "ViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictio

47.Android View的加载过程 (转)

原文地址:http://blog.csdn.net/xyz_lmn/article/details/20122303 大家都知道Android中加载view是从Activity的onCreate方法调用setContentView开始的,那么View的具体加载过程又是怎么的呢?这一节我们做一下分析. 首先追踪一下代码: Activity中: [java] view plain copy print? public void setContentView(int layoutResID) { ge

spring框架中多数据源创建加载并且实现动态切换的配置实例代码

原文:spring框架中多数据源创建加载并且实现动态切换的配置实例代码 源代码下载地址:http://www.zuidaima.com/share/1774074130205696.htm 在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库.我们以往在spring和hibernate框架中总是配置一个数据源,因而sessionFactory的dataSource属性总是指向这个数据源并且恒定不变,所有DAO在使用sessionFa

Android View的加载流程

什么是Activity? Activity是 用户操作的可视化界面:它为用户提供了一个放置视图和交互操作的窗口.采用setContentView的方法提供.因此,可以理解Activity.Window.View三者关系为.Activity提供Window ,View被添加到Window中. 以刷墙举例: Activity可以理解为房间,Window就是房间内的墙面, 我们在墙面上可以刷各种不同的图案,这些图案就是View. Activity View的加载流程 1.Activity在被创建之初,