【问题标题】:Displaying a UIViewController view显示 UIViewController 视图
【发布时间】:2016-07-07 02:55:44
【问题描述】:

我将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 通常那样。

newVC 中的viewDidLoad 最初报告的是 (320, 568) 的 self.view.frame,但稍后它突然报告了 (320, 571) 的 self.view.frame - 而不是 568 的高度.

我正在使用自动布局。

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

【问题讨论】:

    标签: ios objective-c uiviewcontroller autolayout storyboard


    【解决方案1】:

    viewDidLoad() 方法框架中并没有给出控制器视图的实际大小。要获得正确的尺寸,请尝试在 ViewController 的 viewdidlayoutsubviews() 方法中检查它

    【讨论】:

    • 我明白了。但是我有一个问题,而我有一个 tableView,它被限制在 newVC 中的底部布局指南中,但是增加该约束的常量值等于显示时键盘的高度,仍然会使表格出现在键盘下方一点点这让我觉得newVC 太高了。 VC的底部在实际屏幕底部的下方
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多