2012-05-24 2 views
1

여기에 AutorotateToInterfaceOrientation과 관련하여 이상한 점이 있습니다. 내보기 컨트롤러 중 하나에이 메시지가 디버거 콘솔에서 -shouldAutorotateToInterfaceOrientation 관련 메시지

: 모든 인터페이스 방향에 대해 : 뷰 컨트롤러 -shouldAutorotateToInterfaceOrientation에서 NO 반환

. 적어도 하나의 방향을 지원해야합니다.

실제로 회전은 완벽하게 잘 작동합니다. 그리고 메시지가 잘못되었습니다.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return ([centerPoint autoRotateFlag]||(interfaceOrientation==centerPoint.userOrientation)); 
} 

및 autoRotateFlag하거나 단순히 참 (YES), 또는 그렇지 않은 경우 centerPoint.userOrientation 네 개의 허용 가능한 값 중 하나에 고정되어있다 : 여기 -shouldAutorotateToInterfaceOrientation위한 코드이다.

이것은 오랫동안 저에게 효과가 있었으며 앱은 여전히 ​​작동합니다. 나는이 메시지의 출처를 모른다.

아이디어가 있으십니까?

답변

1

NSLog를 사용하여 내 소프트웨어에 추적 기능을 추가하십시오. 나는 shouldAutorotateToInterfaceOrientation이 viewDidLoad가 호출되기 전에 7 번 호출되었음을 깨달았다.

'autoRotateFlag'변수는 viewDidLoad를 통과 할 때만 초기화됩니다. 그건 내 문제를 설명해.

필자는 shouldAutorotateToInterfaceOrientation을 viewDidLoad 전에 호출 할 수 있다고 생각하지 않았다는 것을 인정해야합니다. 분명 내가 틀렸어. 그리고 나는 여전히 모든 메소드가 호출되는 순서를 완전히 이해하지 못합니다.

관련 문제