Ios 自动布局-视图控制器框架不正确

Ios 自动布局-视图控制器框架不正确,ios,swift,uiviewcontroller,autolayout,Ios,Swift,Uiviewcontroller,Autolayout,我试图弄清楚为什么通过presentViewController显示时,视图控制器的框架(从xib加载)设置正确: self.presentViewController(testVC, animated: true, completion: nil); self.addChildViewController(testVC) self.view.addSubview(testVC.view) testVC.didMoveToParentViewController(self) testVC.vi

我试图弄清楚为什么通过presentViewController显示时,视图控制器的框架(从xib加载)设置正确:

self.presentViewController(testVC, animated: true, completion: nil);
self.addChildViewController(testVC)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
testVC.view.setNeedsLayout(); (makes no difference)
…但添加为子视图控制器时仍保持在(0,0,600,600):

self.presentViewController(testVC, animated: true, completion: nil);
self.addChildViewController(testVC)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
testVC.view.setNeedsLayout(); (makes no difference)
我可以提供一个单独的例子,更清楚地说明这个问题。想法?

试试这个

self.addChildViewController(testVC)
testVC.view.frame=self.view.bounds//or set by CGRectMake()
testVC.willMoveToParentViewController(self)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
试试这个

self.addChildViewController(testVC)
testVC.view.frame=self.view.bounds//or set by CGRectMake()
testVC.willMoveToParentViewController(self)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)

因为你忘了给它一个框架!你是说:

self.view.addSubview(testVC.view)

但您既不应用
框架
,也不附加任何约束,因此不会调整视图的大小。你现在是父母了。调整子视图的大小取决于您。如果你没有,它的大小就是它在故事板上的大小——600乘600,正如你所说的。它不会被魔法调整大小。你必须这么做。

因为你忘了给它一个框架!你是说:

self.view.addSubview(testVC.view)

但您既不应用
框架
,也不附加任何约束,因此不会调整视图的大小。你现在是父母了。调整子视图的大小取决于您。如果你没有,它的大小就是它在故事板上的大小——600乘600,正如你所说的。它不会被魔法调整大小。你必须这样做。

请出示所有代码以便复制?一个清晰的问题,一个清晰的答案,但有多个反对票。我永远不会明白。请出示所有代码以便复制?一个清晰的问题,一个清晰的答案,但多个否决票。我永远不会明白。