개발자 블로그

특정 화면을 회전 못하도록 고정 시키기 본문

프로그래밍/iOS-SWIFT

특정 화면을 회전 못하도록 고정 시키기

로이드.Roid 2018. 2. 17. 19:28

아이폰 또는 아이패드에서 기기를 회전시켰을 때 화면이 자동으로 돌아가는 것을 방지하는 코드.

AppDelegate 대신 override를 이용해서 처리하는 코드다. 참고로 여기서 얘기하는 특정 화면의 단위는 NavigationController로 연결된 모든 ViewController를 말한다.

방법은 UINavigationController에서 shouldAutorotate: Bool 변수와 supportedInterfaceOrientations: UIInterfaceOrientationMask 변수를 override 해주면 된다.

만약 모든 화면에서 화면 회전을 못하도록 막고 싶다면 간단하게 extension을 사용해서 처리할 수 있다.


  extension UINavigationController {

      override open var shouldAutorotate: Bool {

          return false

      }

    

      override open var supportedInterfaceOrientations: UIInterfaceOrientationMask {

          return .portrait

      }

  };



UIViewController에서 오버라이딩 하면 동작하지 않으니 이 점에 유의.


Comments