initWithNib init initWithCoder initWithFrame

1. TestViewController * tempVC = [[TestViewController alloc]initWithNibName:@"TestViewController" bundle:nil];

        [self.view addSubview:tempVC.view];//存在XIB

   调用的是  initWithNibName。


2. TestViewController * tempVC = [[TestViewController alloc]init];

        [self.view addSubview:tempVC.view];//存在XIB

调用的是  initWithNibName & init。


3. TestViewController * tempVC = [[TestViewController alloc]initWithNibName:@"TestViewController" bundle:nil];

        [self.view addSubview:tempVC.view];//不存在XIB

调用的是 崩溃


4. TestViewController * tempVC = [[TestViewController alloc]init];

        [self.view addSubview:tempVC.view];//不存在XIB

调用的是  initWithNibName & init。


5. xib中拖拽其他控件,被拖拽的控件会调用 initWithCoder & awakeFromNib


6. 代码添加其他控件

    MyView * tempView = [[MyView alloc]init];

  [self.view addSubview:tempView];

被拖拽的控件会调用 initWithFrame & init

你可能感兴趣的:(initWithNib init initWithCoder initWithFrame)