일부 ViewController의 터미널 회전 방법
주의점
UnivegationController에 걸려 있는 ViewController는 shouldAutorotate()라고 부르지 않습니다.
UINaviation Controller에 View Controller가 걸려 있는 경우 UINaviation Controller의 should Autorotate로 불리기 때문에 View Controller 단위로 제어할 수 없습니다.
걸림돌이 없으면 ViewController라고 합니다.
방법 소개의 전제
Project의 회전 설정은 다음과 같습니다.
포트레이트, 랜스캐프 레프트, 랜스캐프 라이트에서 검사를 진행했다.
UnivegationController에 ViewController가 걸려 있지 않은 경우
회전하려는 ViewController
회전하는 논리 포함
// ## hogehogeViewController.swift
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
let orientation: UIInterfaceOrientationMask = [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.LandscapeRight, UIInterfaceOrientationMask.LandscapeLeft]
return orientation
}
회전하지 않으려는 ViewController
회전을 허용하지 않는 설정만 삽입하면 됩니다.
// ## fugafugaViewController.swift
override func shouldAutorotate() -> Bool {
return true
}
이것은 매우 간단하다.UINaviation Controller에 ViewController가 걸려 있는 경우
이 경우 UINaviation Controller가 확장되어 걸려 있는 UIView Controller의 설정을 얻을 수 있습니다.
// ## UINavigationController+Orientation.swift
public override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
if let _ = self.visibleViewController {
return self.visibleViewController!.supportedInterfaceOrientations()
}
// ViewControllerが無い場合は、縦画面のみ許容します
let orientation: UIInterfaceOrientationMask = [UIInterfaceOrientationMask.Portrait]
return orientation
}
public override func shouldAutorotate() -> Bool {
if let _ = self.visibleViewController {
return self.visibleViewController!.shouldAutorotate()
}
// ViewControllerが無い場合は、回転を許容しません。
return false
}
이렇게 되면 UINaviation Controller는 아이의 View Controller 설정을 가져와서 회전을 허용하고자 하는 View Controller에 아까와 같은 설정을 기술하였다.// ## hogehogeViewController.swift
override func shouldAutorotate() -> Bool {
return true
}
override func supportedInterfaceOrientations() -> UIInterfaceOrientationMask {
let orientation: UIInterfaceOrientationMask = [UIInterfaceOrientationMask.Portrait, UIInterfaceOrientationMask.LandscapeRight, UIInterfaceOrientationMask.LandscapeLeft]
return orientation
}
Reference
이 문제에 관하여(일부 ViewController의 터미널 회전 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/YuwUnknown/items/876f5f1c1734ce6a7651텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)