我有MainWindow.xib文件,我尝试设计第二个.xib文件,它是MainWindowLandscape.xib。我有很多.xib文件,我分别为Portrait和Landscape设计它们。
我想在MainWindow.xib和MainWindowLandscape.xib(基于UITabbarController)中分配它们,我的意思是我将在MainWindow.xib中分配纵向视图,在MainWindowLandscape.xib中分配横向视图。有可能或最简单的方法是什么?
所有视图(肖像和风景)彼此都做同样的事情。只有UI才会改变。
非常感谢。
答案 0 :(得分:1)
你可以通过覆盖
来做到这一点- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
在与两个xib文件关联的视图控制器中。
具体而言,如果您想强制方向始终为纵向,请执行:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
return YES;
return NO;
}
如果要强制视图控制器始终以横向显示:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation))
return YES;
return NO;
}
执行此操作后,您必须记住控制器只有在满足条件时才会自动旋转。具体来说,对于标签栏控制器,所有内部控制器必须支持给定的方向(即,他们应该像上面那样实现shouldAutorotateToInterfaceOrientation
。)