显示UIViewController视图

时间:2016-03-20 17:10:18

标签: ios objective-c uiviewcontroller autolayout storyboard

我将UIViewController显示为UIPageViewController中的一个页面。

此viewController(VC1)的大小为(320,568)。然后我做的是使用这种方法显示另一个VC:

- (void)displayContentController:(UIViewController *)content {
    [self addChildViewController:content];
    content.view.frame = self.view.frame;
    [self.view addSubview:content.view];
    [content didMoveToParentViewController:self];
}

这样叫:

NewViewController *newVC = [self.storyboard instantiateViewControllerWithIdentifier:@"NewViewController"];
[self displayContentController:newVC];

我这样做的原因不是推动它或以模态方式呈现它,因为我需要它与其他UIViewController(VC1)重叠,在与UIPageViewController滑动时模糊它,就像VC1一样通常会。

viewDidLoad中的{p> newVC首先报告self.view.frame(320,568),但稍后它突然报告了self.view.frame(320,571) ) - 而不是568的高度。

我正在使用自动布局。

为什么会这样,我该如何解决?

1 个答案:

答案 0 :(得分:0)

viewDidLoad()方法框架中,不提供控制器视图的实际大小。要获得正确的大小,请尝试在ViewController的viewdidlayoutsubviews()方法中进行检查