我有一个表格,其中包含来自plist文件的大量内容,点击每个内容会带您进入一个新的视图,即xib。
在我的.xib中有两个视图,一个是竖屏模式,另一个是横屏模式。
在我的.h文件中,我有以下代码:
IBOutlet UIView *portraitView;
IBOutlet UIView *landscapeView;
@property (nonatomic, retain) IBOutlet UIView *portraitView;
@property (nonatomic, retain) IBOutlet UIView *landscapeView;
在我的.m文件中,这样写:
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(orientationChanged:) name:@"UIDeviceOrientationDidChangeNotification" object:nil];
}
- (void) orientationChanged:(id)object
{
UIInterfaceOrientation interfaceOrientation = [[object object] orientation];
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
self.view = self.portraitView;
}
else
{
self.view = self.landscapeView;
}
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) {
self.view = portraitView;
} else if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
self.view = landscapeView;
}
return YES;
}
@end
iOS 5时一切都完美地运作,需要时可以显示横向或纵向。
现在iOS 6更新后一切都乱了。
如果我在表格(纵向)视图中点击一个项目,它会在纵向上正确显示,如果我旋转到横向,视图也会正确显示,但是在横向模式下,如果我返回到表格并选择另一个项目,则它会显示纵向视图而不是横向视图。
如果我以横向模式开始做同样的事情,它会显示纵向。
所以,现在方向对任何东西都不起作用。
我的其他使用storyboard的视图也是如此。它们是纵向的,总是这样显示,现在它们旋转,缩小一切,使我的应用程序变得糟糕。
1- 如何修复.xib方向问题?
2- 如何修复storyboard方向?(它们是静态的,现在一切都旋转了(没有代码))
谢谢。