iOS中程序加载顺序以及加载storyboard并获取对应的类

原创 2015年11月17日 20:33:39


1.

PS :犯了个错误,在使用instantiateInitialViewController时,得到的类控制器为空。。。。

即用下面的方法加载 policySB 不为空,但是 policy 为nil。

  UIStoryboard *policySB = [UIStoryboard storyboardWithName:@"policySB" bundle:nil];

  PolicyController * policy = policySB.instantiateInitialViewController;


经检查,是因为在storyboard中未设置isinitialViewcontroller 。

导航控制器弹出policy(nil) 不崩溃,也没有任何反应。。。。







2.加载顺序


- (void)loadView

{

    [super loadView];


    UIView *v4 = [[UIViewalloc] initWithFrame:CGRectMake(200,200, 50, 50)];

    v4.backgroundColor = [UIColoryellowColor];

    [self.viewaddSubview:v4];

    NSLog(@"%s",__FUNCTION__);


}

- (void)viewWillAppear:(BOOL)animated

{

    NSLog(@"%s",__FUNCTION__);

    UIView *v3 = [[UIViewalloc] initWithFrame:CGRectMake(150,150, 50, 50)];

    v3.backgroundColor = [UIColorblueColor];

    [self.viewaddSubview:v3];


    [super viewWillAppear:animated];

}

- (void)viewDidLoad

{

    [superviewDidLoad];

    UIView *v2 = [[UIViewalloc] initWithFrame:CGRectMake(100,100, 50, 50)];

    v2.backgroundColor = [UIColorredColor];

    [self.viewaddSubview:v2];

    

    NSLog(@"%s",__FUNCTION__);

}


- (void)awakeFromNib

{

    UIView *v1 = [[UIViewalloc] initWithFrame:CGRectMake(50,50, 50, 50)];

    v1.backgroundColor = [UIColorgreenColor];

    [self.viewaddSubview:v1];

    [superawakeFromNib];

    NSLog(@"%s",__FUNCTION__);

}

每个storyboard  对应一个类:

通过调试证明从storyboard 中加载的并获取 instantiateInitialViewController (在命名上:storyboard的class  为对应的类名)建立连接



打印结果:

2015-11-17 20:45:52.759 Storyboard使用技巧[23078:1965696] -[HMTableViewController loadView]

2015-11-17 20:45:57.603 Storyboard使用技巧[23078:1965696] -[HMTableViewController viewDidLoad]

2015-11-17 20:46:00.030 Storyboard使用技巧[23078:1965696] -[HMTableViewController viewDidLoad]

2015-11-17 20:46:07.646 Storyboard使用技巧[23078:1965696] -[HMTableViewController awakeFromNib]

2015-11-17 20:46:21.162 Storyboard使用技巧[23078:1965696] -[HMTableViewController viewWillAppear:]



加载顺序:loadView -->viewDidLoad --> awakeFromNib -->  viewWillAppear

加载出四个不同颜色的View




版权声明:欢迎学习交流。

iOS 加载storyboard的公共方法

- (void)viewDidLoad {     [super viewDidLoad];     //    调用方法     MySerViceViewController *hvc...
  • saw471
  • saw471
  • 2016年10月17日 16:17
  • 1314

iOS-代码加载storyboard中的ViewController

story中得控制器UIStoryboard *board = [UIStoryboard storyboardWithName: @"MainStoryboard" bundle: nil];chi...
  • Mandmg
  • Mandmg
  • 2016年08月22日 19:45
  • 4283

在AppDelegate中动态加载StoryBoard

先来介绍一下,动态加载故事版的用处。 大家都知道苹果的审核比较严格,一般来说,有违禁的内容很容易被苹果拒绝掉,那么这个时候就需要给应用安装一个外套(套皮),在审核的时候用套皮去接受审核,当审核完成以...

Objective - C基础: 第四天 - 7.类的加载过程

在前面, 我们知道了类的本质其实也是一个对象, 是Class类型, 那么类的加载过程是如何的呢?? 其实类的加载过程非常简单, 先加载父类然后再加载子类, 而且每一个类就只会加载一次, 下面让我们来...

iOS load和initialize方法加载顺序测试结果

首先创建一个ZWBaseView继承UIView#import "ZWBaseView.h"@implementation ZWBaseView+(void)load{ NSLog(@"%s"...

IOS程序加载顺序和UIViewController的生命周期

iPhone应用程序的引导过程如下 main.m → MainWindow.xib → XXXXXXDelegate.m → XXXXXXViewController.m → XXXXXXVie...
  • MarkBoo
  • MarkBoo
  • 2014年10月18日 23:05
  • 329

linux 驱动module_init()本质--->不同驱动加载顺序对应不同的优先级

阶段一: kernel-3.18\include\linux\init.h中   Linux内核为不同驱动的加载顺序对应不同的优先级,定义了一些宏: #definepure_initcall(fn...
  • ffmxnjm
  • ffmxnjm
  • 2017年05月12日 11:44
  • 917

类,对象,成员加载的顺序

  • 2013年05月29日 19:19
  • 430B
  • 下载

os引导程序boot 在根目录区寻找os加载程序文件loader 对应的根目录条目

【0】README 0.0) source code from orange’s implemention of a os and for complete code , please visit ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS中程序加载顺序以及加载storyboard并获取对应的类
举报原因:
原因补充:

(最多只允许输入30个字)