我试图找出为什么我的视图控制器的框架(从xib加载)在通过presentViewController呈现时设置正确:
self.presentViewController(testVC, animated: true, completion: nil);
...但在作为子视图控制器添加时保持在(0,0,600,600):
self.addChildViewController(testVC)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
testVC.view.setNeedsLayout(); (makes no difference)
我有一个孤立的例子,我可以提供更清楚地证明问题的例子。想法?
答案 0 :(得分:3)
试试这个。
self.addChildViewController(testVC)
testVC.view.frame=self.view.bounds//or set by CGRectMake()
testVC.willMoveToParentViewController(self)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
答案 1 :(得分:2)
这是因为你忘了给它一个框架!你在说:
self.view.addSubview(testVC.view)
但是你既不应用frame
也不附加任何约束,因此视图不会调整大小。 你现在是父母。调整子视图的大小取决于你。如果你不这样做,它的大小就是它在故事板中的大小 - 600乘600,就像你说的那样。它不会被魔法重新调整大小。 你必须这样做。