세로보기 및 일부 응용 프로그램 논리를 관리하는 UIViewController가 하나 있습니다. 그러나 가로 방향에 대해 다른보기를 설정해야합니다. 2 가지보기 사이의 위젯은 주로 동일하지만 레이아웃이 매우 다릅니다.하나의보기 컨트롤러, 세로 및 가로보기 두 개
첫 번째 시도는 하나의 UIViewController와 하나의 연관된 XIB를 사용하는 것이 었습니다. XIB에는 두 개의 UIView, Landscape의 LandscapeView 및 PortraitView의 PortraitView가 있습니다.
는 myController.xib는
| MYCONTROLLER (파일의 소유자)
| landscapeView
는 | - | ...
가 | portraitView
가 | - - | - 을 myWidget
가 myWidget. ..
그런 다음 myController는 view 속성을 설정하여 화면 방향에 따라 이러한보기를 전환합니다.
내 예제에서, myWidget은 본질적으로 두보기간에 동일하며 위치 변경 만이 동일합니다. 컨트롤러에는 그 중 하나에 대한 IBOutlet이 있으며이 IBOutlet은 방향 변경이 발생할 때 프로그래밍 방식으로 변경되어 올바른 방향을 가리 킵니다.
더 좋은 솔루션이 있습니까?
Apple에서 AlternateViews 샘플 코드를 확인했지만 두 가지 다른보기에 2 개의 UIViewController를 사용했습니다. 모든 이벤트/델리게이트 처리 코드를 하나의 컨트롤러에만 유지하고 두 컨트롤러간에 코드를 분할하지 않도록하고 싶습니다.