self.window.rootViewController都干了些啥事?

一直很好奇, 我们即可以向self.window 添加子视图,又可以设置其rootViewController,到底他的视图管理是怎么实现的呢?

看了不少书,才发现,原来设置rootViewController的过程中,其实是把rootViewController 的view 添加到window上,也就是self.window addSubView 来实现的。

看代码

- (void)setRootViewController:(UIViewController*)viewController
{
    UIView *rootView = viewController.view;
    CGRect viewFrame = self.bounds;
    rootView.frame = viewFrame;
   [self addSubView:rootView];
    _rootViewController = viewController;
}
以上是window里的属性的实现代码。这样一来。看关系图。

self.window.rootViewController都干了些啥事?_第1张图片

通过这张关系图和代码,我们很清楚的知道了原理是什么。






你可能感兴趣的:(ios)