zoukankan      html  css  js  c++  java
  • 控制器View创建方式

    三种创建方式:(注意:不论哪种方式都需要设置窗口的根控制器

    1.通过代码创建(个人建议:虽然代码创建繁琐,但是还是觉得代码才是王道)

       loadView方法在控制器中实现这个方法,属于延迟加载方法,用到时才会才会加载

    1 - (void)loadView
    2 {
    3     self.view = [[UIView alloc] init];
    4     self.view.backgroundColor = [UIColor orangeColor];
    5 }

    只要实现了loadView方法xib和storyboard实现的View都不会去管,全部按照loadView描述的View加载

    2.通过xib创建:

       优点:能够用拖控件的方式来描述一个View里面的情况

       缺点:和storyboard相比需要在File's Owner的Class属性中设置所属自定义控制器,并且要设置控制器所属View(连线)

    3.通过storyboard创建

       优点:能够用拖控件的方式来描述一个View里面的情况,如果设置了storyboard为Mainstoryboard的话,就可以免去代码创建Window等的步骤,系统             全会自动生成

     1 // 代码创建方式
     2 
     3 #import "LMPAppDelegate.h"
     4 #import "LMPOneViewController.h"
     5 
     6 @implementation LMPAppDelegate
     7 
     8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     9 {
    10     // 创建窗口
    11     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    12     // 设置窗口颜色为白色
    13     self.window.backgroundColor = [UIColor whiteColor];
    14     // 设置窗口根控制器
    15     self.window.rootViewController  = [[LMPOneViewController alloc] init];
    16     
    17     // 显示窗口
    18     [self.window makeKeyAndVisible];
    19     
    20     return YES;
    21 }
     1 // Storyboard创建方式
     2 
     3 #import "LMPAppDelegate.h"
     4 #import "LMPOneViewController.h"
     5 
     6 @implementation LMPAppDelegate
     7 
     8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     9 {
    10     // 创建窗口
    11     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    12     // 设置窗口颜色为白色
    13     self.window.backgroundColor = [UIColor whiteColor];
    14     
    15     // 加载Storyboard,@"One"为Storyboard文件名,nil默认为[NSBundle mainBundle]
    16     UIStoryboard *one = [UIStoryboard storyboardWithName:@"One" bundle:nil];
    17     
    18     // 获得Storyboard的箭头所指的控制器
    19 //    UIViewController *vc = [one instantiateInitialViewController];
    20     
    21     // 获得Storyboard中标示符为@"Other"对应的控制器
    注意:我所用的控制器是系统自带的控制器,最好还是自己定义一个控制器
    22 UIViewController *vc = [one instantiateViewControllerWithIdentifier:@"Other"]; 23 24 // 设置窗口根控制器 25 self.window.rootViewController = vc; 26 27 // 显示窗口 28 [self.window makeKeyAndVisible]; 29 30 return YES; 31 }
     1 // xib创建方式
     2 
     3 #import "LMPAppDelegate.h"
     4 #import "LMPOneViewController.h"
     5 
     6 @implementation LMPAppDelegate
     7 
     8 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
     9 {
    10     // 创建窗口
    11     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    12     // 设置窗口颜色为白色
    13     self.window.backgroundColor = [UIColor whiteColor];
    14     
    15     // 加载xib文件,注意xib文件中Class设置的什么类型的控制器返回的就是什么类型的控制器
    16     // 主动加载一个xib文件
    17     LMPOneViewController *vc = [[LMPOneViewController alloc] initWithNibName:@"Two" bundle:nil];
    18     
    19     /*
    20        LMPOneViewController *vc = [[LMPOneViewController alloc] init];
    21        规则先后:
    22                默认最先加载文件名为@“LMPOneView”的xib,没有就找名字为@“LMPOneViewController”的xib,
    23                如果也没有系统会自动生成一个空白的View
    24      
    25        注意:如果更改了没有效果是因为你没有重新卸载模拟器的软件,并且最好在xcode中clean一下
    26      
    27      */
    28     
    29     // 设置窗口根控制器
    30     self.window.rootViewController = vc;
    31    
    32     // 显示窗口
    33     [self.window makeKeyAndVisible];
    34     
    35     return YES;
    36 }

  • 相关阅读:
    AES算法加解密Java工具类AESUtil
    并发与高并发(二十二)高并发の服务降级与服务熔断思路
    并发与高并发(二十一) 高并发の应用限流思路
    并发与高并发(二十)高并发の应用拆分思路
    da5_模块
    day5_集合
    day5_递归调用
    day5_判断价格输入是否是正整数或正小数
    day5_函数_判断小数
    day5_函数_文件读写_用一个函数来满足文件的读或者写_应用默认参数
  • 原文地址:https://www.cnblogs.com/pocket-mood/p/4420775.html
Copyright © 2011-2022 走看看