SubViewController在第一次添加到其ParentViewController时出现的一个奇怪问题

时间:2015-09-22 08:47:49

标签: ios uiviewcontroller

#define SCREEN_WIDTH ([[UIScreen mainScreen] bounds].size.width)
#define SCREEN_HEIGHT ([[UIScreen mainScreen] bounds].size.height)

#define NAVIGATIONBARHEIGHT 64.0
#define TABBARHEIGHT 49.0

- (void)viewDidLoad {
    [super viewDidLoad];

    UIViewController *viewController = [self viewControllerIndex:0];
    viewController.view.frame = CGRectMake(0.0,0.0, SCREEN_WIDTH, SCREEN_HEIGHT);//**strange issue is here**
    [self addChildViewController:viewController];
    [self.view addSubview:viewController.view];
}

当第一次添加SubViewController时,我认为它的帧高应该是“SCREEN_HEIGHT - NAVIGATIONBARHEIGHT - TABBARHEIGHT”,但它不是,它看起来像:

enter image description here

但是我将SubViewController的框架高度更改为“SCREEN_HEIGHT”就可以了,它看起来像是:

enter image description here

我很困惑,为什么“SCREEN_HEIGHT”还可以?

1 个答案:

答案 0 :(得分:1)

您正在将视图作为子视图添加到导航控制器的视图中,并且您的导航控制器似乎已嵌入到选项卡栏控制器中。从技术上讲,您的子视图将被剪掉,并且不能与导航控制器的“导航栏和标签栏控制器”标签栏重叠。这就是这些控制器的设计方式。您期望的是基本上可以使用自定义导航栏和标签栏。