将viewController添加为子视图Swift不显示任何组件

Posted

技术标签:

【中文标题】将viewController添加为子视图Swift不显示任何组件【英文标题】:Adding viewController as subview Swift Not showing any component 【发布时间】:2016-04-14 05:58:04 【问题描述】:

我在情节提要中创建了一个视图控制器 vc,并在其上放置了一个 View1 并向其添加所有约束。现在我想添加一个 vc 作为子视图。我使用此代码:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let vc = storyboard.instantiateViewControllerWithIdentifier("LeftMenuListIdentifier")      
self.view.addSubview(vc.view)

vc 控制器作为子视图添加到我当前的控制器,但它没有显示 vc 控制器的任何子视图,视图意味着 View1。

如果我将 vc 控制器推送到我当前的视图控制器,那么它会显示 View1。

self.navigationController?.pushViewController(vc, animated: true)

请建议我应该怎么做。我想从情节提要中添加一个视图控制器作为子视图。

【问题讨论】:

【参考方案1】:

请按照以下步骤解决您的问题。

    首先创建UIViewController 对象。 之后将对象添加为 childviewcontroller 为 Like (self.addChildViewController("Your Controller Object")) 然后在self.view 上添加控制器作为添加subview.(`self.view.addSubview("Your Controller Object"))

我认为它会起作用

【讨论】:

【参考方案2】:

您不需要推送您的 vc,只需使用 addChildViewController(vc);、this link may help you 将其添加到当前视图控制器即可

【讨论】:

嗨!感谢您的回复,我现在正在工作。但我需要将它添加到主窗口我该怎么做?像这样 let currentWindow : UIWindow = UIApplication.sharedApplication().keyWindow! currentWindow.addSubview(vc.view) 什么意思?你想让你的孩子viewcontroller作为rootviewcontroller吗?还是将您的 childviewcontroller 添加到导航层次结构?

以上是关于将viewController添加为子视图Swift不显示任何组件的主要内容,如果未能解决你的问题,请参考以下文章

将viewController添加为子视图Swift不显示任何组件

当视图未将自身添加到其子视图时,“无法将自身添加为子视图”崩溃(带有示例代码)

在 iOS 中,将视图添加为子视图与将视图分配给视图属性之间有区别吗?

从嵌入式子UIViewController中获取Parent ViewController

将 UIImagePickerController 添加为子视图

登录屏幕 SWIF5 后返回上一个 viewController