我有一个只能在UIInterfaceOrientationLandscapeLeft中运行的iPad应用程序。我已经在我的plist中设置了它,但是所有UIViewControllers仍然被分配了一个纵向框架,直到它们完成启动。因此,我根据视图控制器的框架在-init中设置的任何子视图都是错误的。
我输出了self.view.frame并且它是0, 0, 768, 1024
,而它应该是0, 0, 1024, 768
我还设置了我的视图控制器只返回左侧的景观:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
答案 0 :(得分:0)
不是在-init中设置子视图,而是在-loadView中设置它们(如果你没有使用xib)或者-viewDidLoad(如果你使用的是xib)。当调用这些方法时,你的UIViewController应该处于正确的状态并按你的意愿工作。