1. 程式人生 > >設備旋轉---橫豎屏切換

設備旋轉---橫豎屏切換

不能 旋轉 clas return 設備旋轉 ota wid 豎屏 n)

前提: 必須勾選上這兩個 Left \ Right 選項; 如果不勾選, 代碼怎麽控制都不管用

技術分享

不同頁面實現& shouldAutorotate/supportedInterfaceOrientations 等方法不起作用, 不能控制橫豎屏的切換

正常的實現邏輯中, 只需要在控制器A中實現以下

- (BOOL)shouldAutorotate {
    return NO;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

原因是, UINavigationController, UITabBarController相關的控制器會默認走基類的shouldAutorotate等這幾個轉屏方法,所以自己寫就不會生效了,

解決辦法,自定義 UINavigationController, UITabBarController, 在 BaseNavController中實現轉屏的方法,然後就可以在需要設置轉屏的控制器設置了

-(BOOL)shouldAutorotate{

return self.topViewController.shouldAutorotate;

}

/**以下兩個方法可不寫*/

- (UIInterfaceOrientationMask)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskAll;

}

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{

returnUIInterfaceOrientationLandscapeRight;

}

設備旋轉---橫豎屏切換