我有以下问题:
我得到了一些在用户登录时调用的代码。代码必须调用另一个视图控制器并且必须显示另一个视图。为了显示新视图,我得到了以下代码:
[scrollView removeFromSuperview];
Form1 *formcontroller1 = [[Form1 alloc] initWithNibName:@"Form1" bundle:[NSBundle mainBundle]];
[self.view setAutoresizesSubviews:YES];
[self.view addSubview:formcontroller1.view];
[scrollView release];
问题是,当加载另一个视图并且我旋转设备时,新笔尖的视图没有正确调整大小。
编辑:
我没有解雇当前的viewcontroller所以仍然存在一些属性。我做的是这个:
[scrollView removeFromSuperview];
[self dismissModalViewControllerAnimated:YES];
Form1 *formcontroller = [[Form1 alloc] init];
[self presentModalViewController:formcontroller animated:YES];
[scrollView release];
答案 0 :(得分:1)
您应该在Interface Builder中检查nib视图的自动调整属性...
它应该如图所示:
中间的箭头变暗,但仍处于活动状态。这是设置自动调整大小的地方。您可以尝试通过在控制器viewDidLoad
方法中分配来以编程方式设置该属性:
self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
您还应该确保您的视图及其超级视图都选中了“自动调整大小视图”按钮(在IB中的检查器的第一个窗格中)
老答案:
如何定义Form1
– shouldAutorotateToInterfaceOrientation:?
默认情况下,此方法仅为UIInterfaceOrientationPortrait方向返回YES。如果视图控制器支持其他方向,则覆盖此方法并为其支持的所有方向返回YES。
此方法的实现应该根据interfaceOrientation参数中的值返回YES或NO。不要尝试获取interfaceOrientation属性的值或检查UIDevice类报告的方向值。您的视图控制器要么能够支持给定的方向,要么不支持。
E.g:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
支持所有方向。