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程序加载顺序和UIViewController的生命周期

iPhone应用程序的引导过程如下 main.m → MainWindow.xib → XXXXXXDelegate.m → XXXXXXViewController.m → XXXXXXVie...

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

【0】README 0.0) source code from orange’s implemention of a os and for complete code , please visit ...

如何控制设备驱动程序的加载顺序

设计 Windows NT 时所采用的概念是:第一个提出占有某设备的驱动程序获得该设备的所有权。这个所有权可以共享,也可以独占,这由提出占有要求的设备驱动程序决定。如果设备驱动程序对设备提出了独占占有...

iOS属性传值(视图控制器viewController的执行顺序的理解和懒人加载的理解)

在iOS中传值简单说就是把一个视图控制器上的控件内容传送到另一个视图控制器控件上,并使其显示. 传值的方法有许多种:属性,方法,协议(本质是targetAction),targetAction,本地存...

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

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

ios-使用Xib加载或Storyboard加载控制器(视图)

在ios中,一般建议使用代码布局,因为使用代码布局,后期维护容易,拓展容易,
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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