2013-01-08 7 views
2

내보기에 하위보기가 추가됩니다. 모든 것이 잘 작동합니다. 내 응용 프로그램은 자동 회전을 지원합니다. 기기를 회전 할 때 상위 뷰가 자동으로/와이드 스크린이 호출되지만 서브 뷰는 자동으로/윌로우가 호출되지 않아야합니다. 이 때문에 하위 뷰 UI 구성 요소의 위치를 ​​설정할 수 없습니다.하위 회전이 장치 회전시 조정되지 않음

viewController = [[abcController alloc] initWithNibName:@"abcController" bundle:nil]; 
[self.view addSubview:viewController.view]; 

모든 포인터가 도움이 될 것입니다.

답변

1

로보기가 적절한 자동 크기 설정을 부족이 별도로

viewController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

, 당신이 당신의 abcControllershouldautorotate/willanimate가 호출되지 않아요 것을 의미한다면, 그게 정상적인 동작입니다.

주 컨트롤러는 일종의 포함 논리를 구현하고 컨트롤러에 shouldautorotate/willanimate을 전달해야합니다. 즉, 주 컨트롤러가 abcController 인스턴스에서 shouldautorotate/willanimate으로 전화를 걸 수 있지만 알고 있어야합니다. 제쳐두고, 애플은 이와 같이 제안하지는 않지만, iOS4를 지원하려면 이것이 유일한 방법이다.

또는 iOS> 5의 경우 UIViewController Containment을 사용할 수 있습니다.

이 두 가지 방법을 사용하여 리조트를 :

@interface UIViewController (UIContainerViewControllerProtectedMethods) 

- (void)addChildViewController:(UIViewController *)childController; 
- (void)removeFromParentViewController; 

@end 

Here 당신이 좋은 자습서를 찾을 수 있습니다. iOS4에서는 작동하지 않습니다.

3

한 뷰 컨트롤러의 뷰를 다른 뷰 컨트롤러의 뷰 트리에 기능적으로 추가 할 수없고 두 번째 뷰 컨트롤러가 메시지를 가져 오기를 기대할 수 없기 때문입니다.

은 당신이 중 하나

  1. 당신이 첫 번째의 자식으로 두 번째 뷰 컨트롤러를 추가 할 첫 번째 UIViewController (안 제 UIViewController)
  2. 사용이 addChildViewController 방법의 일부가 될 추가 뷰를 가질 필요가 보기 컨트롤러 (이러한 메시지를 전달할 수있게합니다).
+0

감사합니다. 나는 왜 내 하위 뷰가 회전하지 않는지 알아 내려고 노력했다. addChildViewController를 호출해야합니다! –

0

보기 컨트롤러가 자동으로/과다 전화를해야만보기 계층에 있어야합니다. 따라서 하위 뷰로 뷰를 추가하는 경우이 메서드는 호출되지 않지만 네비게이션 컨트롤러에이 뷰 컨트롤러를 푸시하거나 모달 뷰 컨트롤러로 표시하거나 addChildViewController 메서드 (iOS 5 이상)를 사용하면 뷰 컨트롤러 그 메시지를받을 것입니다. 뷰를 하위 뷰로 추가하려는 경우 자동 크기 조정 마스크를 사용하여 제거 할 수 있습니다. (하지만 사용자 정의보기가 아닌보기 컨트롤러를 만드는 지점이 보이지 않습니다.)

관련 문제