Controller的创建及view的创建

Controller 控制器

    控制器常见的创建方式有以下几种:
  • 通过storyboard创建:
    1.先加载storyboard文件(Test是storyboard的文件名)

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

    2.接着初始化storyboard中的控制器 初始化“初始控制器”(箭头所指的控制器)

             MJViewController *mj = [storyboard instantiateInitialViewController];

    3.通过一个标识初始化对应的控制器

    MJViewController *mj = [storyboard instantiateViewControllerWithIdentifier:@”mj"];

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 1.创建window
        self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
        // 2.加载storyboard,并且创建初始化控制器(箭头所指的控制器)
        UIStoryboard *story=[UIStoryboard storyboardWithName:@"Main" bundle:nil];
        //self.window.rootViewController=[story instantiateInitialViewController];    
        self.window.rootViewController=[story instantiateViewControllerWithIdentifier:@"dh"];//需要设置Storyboard ID
        // 3.显示窗口
        [self.window makeKeyAndVisible];
        
        return YES;
    }
  • 直接创建

       MJViewController *mj = [[MJViewController alloc] init];

  • 指定xib文件来创建

MJViewController *mj = [[MJViewController alloc] initWithNibName:@"MJViewController" bundle:nil];

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    
    self.window=[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
    
    DHOneViewController *one=[[DHOneViewController alloc]initWithNibName:@"DHOneViewController" bundle:nil];
    self.window.rootViewController=one;
    
    [self.window makeKeyAndVisible];
    
    return YES;
}

创建xib文件,需要设置File‘s Owner,如下图:

执行如果报错:-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "DHOneViewController" nib but the view outlet was not set.记得要连线,指定view,如看下图:

控制器的View

•控制器的view是延迟加载的:用到时再加载
 
•可以用isViewLoaded方法判断一个UIViewController的view是否已经被加载
 
•控制器的view加载完毕就会调用viewDidLoad方法
 
 
 
 
 

posted on 2015-03-08 11:46  二狗你变了  阅读(376)  评论(0)    收藏  举报

导航