最近在項目中遇到iOS6的一點問題,主要是橫豎屏的處理不一樣了,多了一些方法,原來的方法被廢棄掉了。
可能主要是為了適配iPhone5吧。具體的原因不深究,解決問題。
在網上找了一些解決方法,但是不適合我在項目中使用。
if ([[[UIDevice currentDevice] systemVersion] floatValue] < 6.0) {
[self.window addSubview:navController.view];
}else{
[self.window setRootViewController:navController];
}
有人建議這樣修改,但是我看不到任何這么修改的依據,所以項目中並沒有使用這樣的方式修改,
主要還是依賴於SDK自身的特點來進行修改吧。
進入正題:
主要修改以下幾個方面
在AppDelegate中增添一個方法,我這里只支持豎屏的處理,就只設置了這一種方式(可以根據自身的需要進行設置)
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return (UIInterfaceOrientationMaskPortrait);
}
在viewController中增加下面的兩個方法,同時保留原有的方法
//iOS6中新增的兩個方法
- (BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskPortrait);
}
//在iOS6中廢棄了的方法,保留,以適配iOS4和5
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return toInterfaceOrientation == UIInterfaceOrientationPortrait;
}
搞定了,然后在項目中就可以支持iOS6,iOS4和5的屏幕適配了,這里主要是豎屏,大多數程序也是豎屏
可以根據自身的需要進行修改。