我們有一個(gè)項(xiàng)目是需要做橫豎屏旋轉(zhuǎn)的,就是根據(jù)服務(wù)器返回的指令做個(gè)旋轉(zhuǎn),總結(jié)一下:
兩種根據(jù)服務(wù)器指令來旋轉(zhuǎn)屏幕都需要寫個(gè)分類,固定住不需要旋轉(zhuǎn)的屏幕,然后在需要旋轉(zhuǎn)的實(shí)現(xiàn)一下代碼即可在指定的控制器旋轉(zhuǎn),這種橫豎屏都是push
SEL selector = NSSelectorFromString(@"setOrientation:");
NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[UIDevice instanceMethodSignatureForSelector:selector]];
[invocation setSelector:selector];
[invocation setTarget:[UIDevice currentDevice]];
int val = UIInterfaceOrientationLandscapeRight;
[invocation setArgument:&val atIndex:2];
[invocation invoke];
第二種實(shí)現(xiàn)比較簡(jiǎn)單,主要是之前我們使用了第一種解決方案,PM
當(dāng)時(shí)看到QQ
空間有個(gè)屏幕旋轉(zhuǎn)的,實(shí)現(xiàn)的比較好,我用自己的實(shí)現(xiàn)方法實(shí)現(xiàn)了。依然導(dǎo)入三個(gè)分類,然后豎屏直接push
,橫屏使用Modal
,然后重新里面的三個(gè)方法即可,第二個(gè)相對(duì)于第一種比較簡(jiǎn)單
https://github.com/BaiCanLin/HorizontalAndVertical