子视图控制器的视图未显示在容器中

Posted

技术标签:

【中文标题】子视图控制器的视图未显示在容器中【英文标题】:Child view controller's view is not shown in a container 【发布时间】:2015-04-26 14:08:10 【问题描述】:

我在情节提要中有一个带有Container View 的场景。正如您可能猜想的那样,我希望其关联的UIViewController 在那里加载另一个UIViewController 作为子视图控制器,并将其视图显示为子视图。

所以,我在父 UIViewController 中定义了属性:

@property (weak, nonatomic) IBOutlet UIView *containerView;
@property (strong, nonatomic) MyChildViewController *childController;

然后,在父级的viewDidLoad 方法中,我这样做:

if (self.childController == nil) 
    self.childController = [[MyChildViewController alloc] init];


[self addChildViewController:self.childController];
self.childController.view.frame = CGRectMake(0, 0, self.containerView.frame.size.width, self.containerView.frame.size.height);
[self.containerView addSubview:self.childController.view];
[self.childController didMoveToParentViewController:self];

self.childController.viewself.containerView 都不是 nil,但是当我运行应用程序时,self.childController.view 不显示...我会丢失什么?

谢谢

【问题讨论】:

【参考方案1】:

我终于注意到我忽略了什么......因为我还在故事板中为 MyChildViewController 创建了一个场景,所以我需要从那里实例化它。

【讨论】:

你在哪里实例化了?

以上是关于子视图控制器的视图未显示在容器中的主要内容,如果未能解决你的问题,请参考以下文章

(自动布局)容器视图调整大小但子视图不

如何使用自动布局在两个子视图控制器之间移动?

解决 Rails 3.2 中控制器的视图路径

如何在 swift 中从父视图访问容器视图子视图

视图控制器容器偶尔会错过子控制器中的 viewWillAppear

呈现子视图控制器的自定义容器视图控制器子项