0.3.3.UIWindow

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 1.创建窗口,注意窗口必须要有尺寸,尺寸跟屏幕一样大的尺寸,窗口不要被释放
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    self.window.backgroundColor = [UIColor redColor];

    // 2.创建窗口的跟控制器
    UIViewController *vc = [[UIViewController alloc] init];
    vc.view.backgroundColor = [UIColor yellowColor];

    //演示旋转功能
    [vc.view addSubview:[UIButton buttonWithType:UIButtonTypeContactAdd]];

    // 如果设置窗口的跟控制器,默认就会把控制器的view添加到窗口上
    // 设置窗口的跟控制器,默认就有旋转功能
    self.window.rootViewController = vc;

    // 3.显示窗口
    [self.window makeKeyAndVisible];
    return YES;
}

窗口:键盘,状态栏也是窗口

窗口是有层级关系

    // UIWindowLevelNormal < UIWindowLevelStatusBar < UIWindowLevelAlert
    self.window.windowLevel = UIWindowLevelAlert;

如何创建一个UIWindow的rootViewController

创建一个UIWindow的rootViewController创建方式有以下几种

1.通过storyboard创建

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    // 创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];


    // 创建窗口的跟控制器
    // 加载storyboard
    // storyboard文件名,不需要带后缀
    // nil:  [NSBundle mainBundle]
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    // 通过storyboard创建控制器
    // instantiateInitialViewController:加载箭头指向的控制器
    //    UIViewController *vc = [storyboard instantiateInitialViewController];

    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"green"];

    self.window.rootViewController = vc;

    // 显示窗口
    [self.window makeKeyAndVisible];

    return YES;
}

2.直接创建

3.指定xib文件来创建

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.


    // 创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];


    // 通过xib创建控制器
    ViewController *vc = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];


    self.window.rootViewController = vc;


    [self.window makeKeyAndVisible];


    return YES;
}

/*
 通过xib创建控制器的view
 1.一定要描述xib的文件拥有者是控制器,也就是说这个xib是用来描述控制器
 */

results matching ""

    No results matching ""