iOS界面設置豎屏,個別界面強制橫屏


項目需要,只有某個界面需要橫屏顯示,其它全只支持豎屏顯示即可,網上資料很多,但是試過都不好用,最后發現是因為我的項目UIViewController外層是UINavigationVeiwController,只在UIViewController重載supportedInterfaceOrientations與shouldAutorotate 方法是不行的。

下面說明具體設置步驟:(參考http://www.cocoachina.com/bbs/read.php?tid-244095.html

Step 1:Info.plist中設置Supported interface orientations 為所有支持的方向,我是這樣設置的:

    

Step 2:在自定義的navigationViewController中添加屬性:

@property (nonatomic, assign) BOOL supportLandscape;

 初始化:

 

- (id)init
{
	if (self = [super init])
	{
		[self setup];
	}
	
	return self;
}

- (void)setup
{
	//其他設置
        ...
    	self.supportLandscape = NO;
}

  

 重載supportedInterfaceOrientations方法:

- (UIInterfaceOrientationMask) navigationControllerSupportedInterfaceOrientations:(UINavigationController *) navigationController{
    if(self.supportLandscape){
        return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeRight;
    }else{
        return UIInterfaceOrientationMaskPortrait;
    }
}

Step 3:我的項目中所有viewController都是由navigationController控制的,所以,只需要在需要支持橫屏的viewController中進行設置就好了:

-(void) viewDidAppear:(BOOL) animated{
    [SlideNavigationController sharedInstance].supportLandscape = YES;
}

-(void) viewDidDisappear:(BOOL) animated{
    [SlideNavigationController sharedInstance].supportLandscape = NO;
}

 親測好用~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM