第十三章 UIWindow

UIWindow是一种特殊的UIView,通常一个app中有一个UIWindow

iOS程序启动完毕,创建的第一个视图控件就是UIWindow,接着创建控制器的view,最后将控制器的view添加到UIWindow上,于是控制器view就显示上了屏幕上了。 一个iOS程序之所以能够显示,就是因为有UIWindow

    // 新建窗口
     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    // 创建窗口跟控制器
    ViewController * view = [[ViewController alloc] init];
    view.view.backgroundColor = [UIColor redColor];
    // 使用rootViewController,而不是直接addSubView,是因为root的话可以带有窗口旋转功能
    self.window.rootViewController = view;
    // 显示窗口
    // makeKeyAndVisible:成为app程序的主窗口,
    [self.window makeKeyAndVisible];

application.keyWindow :是可以拿到app的主窗口的

application.windows:显示app一共有几个窗口

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

提示框不是窗口

  • 代码加载storyboard方法
/**
 *  完成启动的时候调用
 */
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // 新建窗口
     self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    // 创建storyboard
    // nil:就是默认为[NSBundle MainBundle];
    UIStoryboard * storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    // 创建窗口跟控制器
    ViewController * view = [storyboard instantiateInitialViewController];
    view.view.backgroundColor = [UIColor redColor];
    self.window.rootViewController = view;
    // 显示窗口

    [self.window makeKeyAndVisible];
    return YES;
}
// 可在一个storyboard中间创建多个viewController,我们取出来的时候调用,需要在stryboard中设置标识符
 ViewController * view = [storyboard instantiateViewControllerWithIdentifier:@"cell"];

results matching ""

    No results matching ""