, 당신은 shouldAutorotateToInterfaceOrientation이 viewControllers의 스택에 두 번째 또는 세 번째의 ViewController에 호출되는하고자 할 때 장치 변경의 방향입니다.
shouldAutorotateToInterfaceOrientation은 최상위 viewController에서만 호출됩니다. 두 번째 또는 세 번째 viewController 메서드에서 레이아웃 코드를 수행하면 코드가 실행되지 않습니다.
솔루션은 코드에 따라 간단하고 많습니다. 작동 할 것입니다 (Xcode에서 테스트하지 않음). 특정 childViewController에 대한 포인터가있는 경우
for (UIViewController *vc in [self childViewControllers])
{
[vc shouldAutorotateToInterfaceOrientation];
}
, 당신은 특별히을 호출 할 수 있습니다처럼 상단의 ViewController의 shouldAutorotateToInterfaceOrientation 방법에 무언가를 추가 할 수 있습니다. 문서에서
참고 :이 방법의
귀하의 구현은 단순히 interfaceOrientation 매개 변수의 값에 따라 NO YES 반환하거나한다. interfaceOrientation 속성 값을 가져 오거나 UIDevice 클래스에서보고하는 방향 값을 확인하지 마십시오. 보기 컨트롤러가 주어진 방향을 지원할 수도 있고 그렇지 않을 수도 있습니다.
어떤 레이아웃을 수행하려면, 당신은 사용할 수 있습니다
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
희망이 도움이!