除了rootviewcontroller之外,无法向uiwindow添加其他子视图

Sar*_*ran 5 ios

下面是来自didFinishLaunchingWithOptions的app delegate的代码

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];

CGRect windowFrame = self.window.frame;
UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, windowFrame.size.height-100, windowFrame.size.height, windowFrame.size.height)];
bottomView.backgroundColor = [UIColor redColor];
[self.window addSubview:bottomView];

//    self.viewController.view.frame = CGRectMake(0, 0, windowFrame.size.width, windowFrame.size.height-100);

self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];

return YES;
Run Code Online (Sandbox Code Playgroud)

我的ViewController是FreeForm,它的高度只有245左右.正如你所看到的,我试图将底部视图设为100点高度.

我只是想学习这个.

但视图总是填满整个屏幕.如果我将设置视图控制器注释为windows rootviewcontroller,我可以在屏幕上看到我的底视图.

我做错了什么?请指教.

谢谢.

Sar*_*ran 3

代替

self.window.rootViewController = self.viewController; 
Run Code Online (Sandbox Code Playgroud)

当我编码时

[self.window addSubview:self.viewController.view]; 
Run Code Online (Sandbox Code Playgroud)

给了我预期的结果,它控制了自由形状的大小。

当设置为 rootviewcontroller 时,无论 XIB 上设置的自由格式大小如何,它都会填充整个可用屏幕。