我一直在阅读文档,但似乎仍然处于困境之中。如何在Swift中正确添加iOS 8中的子视图控制器
我有一个视图控制器对象C_SelectPhoto。这有一个容器视图。在容器视图中,我希望childed视图控制器C_SelectPhotoControllerView适合它。它只是一组照片。但是,设置框架并添加子视图控制器不起作用。如果我移动所需的子视图控制器的x值,则不会发生任何影响。
为了弄清楚发生了什么,我对所有的东西都进行了颜色编码。下面的容器是橙色的。根据故事板的容器所期望的视图是黄色的。我实际上想要适应的观点是红色的。
这里是故事板:下面
这里是C_SelectPhoto
我的控制器代码class C_SelectPhoto:Controller
{
@IBOutlet weak var selectPhotoControllerView: UIView!
var _collectionViewController:C_SelectPhotoControllerView!
//TODO PERMISSION IS NEEDED BEFORE FETCHING
func initController()
{
_collectionViewController = Controller.STORYBOARD.instantiateViewControllerWithIdentifier("selectPhotoControllerView") as C_SelectPhotoControllerView
displayControllerViewController()
}
//show the photo selection
private func displayControllerViewController()
{
addChildViewController(_collectionViewController)
_collectionViewController.view.frame = CGRectMake(100, 0, 500, 500)
self.view.addSubview(_collectionViewController.view)
_collectionViewController.didMoveToParentViewController(self)
}
}
然而结果是产生是:
首先,黄色类不应该被添加,我只想要红色(UICollectionViewControll呃类)。其次,我可以告诉红班正在被添加到错误的地方,因为它的x值根本没有移动它。
所以我的问题是: 如何添加一个UIContainerViewController作为子视图到主视图控制器C_SelectPhoto,但有UIContainerViewController框架FIT容器我在主视图控制器中?
谢谢!!!
注意:我试图添加的视图是UICollectionViewControllers。当我添加一个UIViewController时,框架工作得很好,但是正如你在添加UICollectionViewControllers时可以看到的那样,框架不起作用,并且它们被添加到随机偏移量,并且不考虑我尝试使用帧分配来设置它们的大小。
我注意到UICollectionView大小是不尊重我为它设定的框架。如果我将其框架设置为(0,0,50,50),那么我在viewDidAppear中检查其框架时,它会以(0,0,768,960)出现!如果我使用通用UIViewController,则不会发生此问题 – Aggressor 2014-10-28 03:45:05
@Aggressor,请勿设置任何框架。它应该与没有任何代码的容器大小相同。确保给容器视图提供所需的任何约束,以使其达到所需的大小。 – rdelmar 2014-10-28 03:47:09
在故事板中控制器的底部,我看到了这个“将segue嵌入到'Controller Name'中。你知道如何随时添加我想要的吗?我意外删除了它,我似乎无法重新创建它 – Aggressor 2014-10-28 03:52:22