我有一个带有子视图的testViewController。 Autolayout已关闭。在InterfaceBuilder中,我设置了自动调整大小属性。
我从MatchViewContoller调用此viewController:
-(void)showTutorial
{
self.testViewController = [[TestViewController alloc] init];
[self.view addSubview:self.testViewController.view];
}
在testViewController中:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.6];
}
视图显示正确,但在iPhone 3.5英寸模拟器中打开视图时,子视图未调整大小。所以现在底部不可见了。
我已经用[self.navigationController pushViewController:testViewController animated:NO];
尝试了它然后它工作正常...子视图的子视图完全调整大小。
但是当我使用[self.view addSubview:self.testViewController.view];
时,子视图没有调整大小....
我已尝试在testViewController和MatchViewController上打开和关闭“Autoresize Subviews”的所有组合......但没有任何效果......
我在这里缺少什么?使用addSubview方法添加调整大小时不能正常工作吗?
答案 0 :(得分:0)
问题是您将testViewController的视图添加为子视图,但是您没有在viewController层次结构中添加控制器,因此不会调用像viewDidLoad这样的生命周期调用。
试试这个:
-(void)showTutorial
{
self.testViewController = [[TestViewController alloc] init];
[self addChildViewController:self.testViewController];
[self.testViewController didMoveToParentViewController:self];
[self.view addSubview:self.testViewController.view];
}