2012-01-23 2 views
0

willInimateROtationToInterface가 호출되지 않지만 UIViewController 하위 클래스에 다음 코드가 있습니다. 왜 그런가?willAnimateToRotation가 호출되지 않습니다.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    // Return YES for supported orientations 
    return YES; 
} 

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 

} 

UPDATE : 부모의 뷰 컨트롤러 방향 변경 위임이 하나 그러나하지 불리는지고 있습니다.

[self.navController.view addSubview:viewController.view]; 
+0

사용자 인터페이스가 순환 게재됩니까? –

+0

예 사용자 인터페이스가 회전 중입니다 – xonegirlz

+0

그리고 현재 표시되는보기 컨트롤러입니까? 즉 해당 뷰 컨트롤러에 대한 뷰가로드 되었습니까? –

답변

1

는 이것이 즉 UIViewController가 통지를 전달 (또는 iOS5를의 UIViewController 억제 방법을 사용)하지 않은 다른 사용자 UIViewController 서브 클래스 내에 중첩되고 있었던 뷰 컨트롤러 억제의 문제였다 나왔다.

1

당신이 존재하는 다음 방법 중 하나를 가지고 있습니까 : 나는

부모 뷰 컨트롤러, 그래서 여기에 내가 하위 뷰를 추가하고 방법 UINavigationController가되어 부모의 뷰 컨트롤러의 서브 뷰 등이 뷰 컨트롤러를 추가 귀하의 UIViewController 하위 클래스에서?

- (void)willAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration; 
- (void)didAnimateFirstHalfOfRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation; 
- (void)willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:(NSTimeInterval)duration; 

당신은 두 부분으로 길을 가고있다, 그리고 한 부분 방법 willAnimateRotationToInterfaceOrientation:duration:가 호출되지 않도록합니다.

UPDATE : 위의 xonegirlz의 갱신에 대응 :

부모 탐색 컨트롤러합니다 (UINavigationController가이) 당신의 UIViewController에 대한 지식이 없다 - 당신이보기 계층 구조에서 함께 보기를 연결 한, 그러나 보기 컨트롤러 컨트롤러 계층에서 함께.

iOS 5를 타겟팅하는 경우 UINavigationController에서 -[UIViewController addChildViewController:]으로 전화하여 자녀를 알릴 수 있습니다.

iOS 4의 경우 적절한보기 컨트롤러 계층을 설정하려면 -[UINavigationController pushViewController:animated: 또는 -[UIViewController presentModalViewController:animated:]을 사용해야합니다.

옵션이 아닌 경우 상위보기 컨트롤러를 하위 클래스에 추가하고 수동으로 하위보기 컨트롤러에 회전 메소드를 전달해야합니다.

+0

아니 내가 그 방법 중 하나가 내 안에 없어 (http://chat.stackoverflow.com/rooms/6949/discussion-between-ell-neal-and-xonegirlz) 하위 클래스 – xonegirlz

+0

-willRotateToInterfaceOrientation : duration : 및 -didRotateFromInterfaceOrientation을 구현하고 NSLog (@ "rotate") 및 NSLog (@ "rotate")를 사용하는 경우 로그가 표시됩니까? – iccir

+0

그들은 ...하지 않습니다.그건 기본적으로 내 질문이다 – xonegirlz

관련 문제