2009-08-23 3 views
0

다음과 같은 코드가 true로 평가되고 OS 2.2.1에서 오른쪽 (또는 왼쪽)으로 회전하는 중괄호 안에 코드가 실행됩니다. 그러나 OS 3.0 용으로 컴파일되고 실행될 경우 동일한 코드 행은 true로 평가되지 않습니다. (또는 중괄호로 들어가십시오) ...OS 3.0에서 iPhone 인터페이스 방향 명령문이 작동하지 않습니까?

디버거 및 로그에서 중괄호 안의 줄은 나는 3.0

이것은 텍스트 뷰에 textViewDidBeginEditing 방법의 내부 용으로 컴파일 한 경우

이 처리 2.x 및 방법이 3.0 상대 사이에 뭔가 변화 했 ... 생략? 크기를 조정하지 않는 텍스트 필드는 사용자가 버그를 수정하려고 시도하는 것으로 나타났습니다 ...

이 코드는 원래 코드가 아니며, 필자가 생각하기에 시작해야한다고 생각합니다. 회전을위한 일부 대리자 메서드 구현 ...? 이 경우 테스트하려는 경우 그러나 여전히 버그이 사항이 작동하지 않는 나를 ... 어떤 조언에 미리

감사합니다 ...

if((self.interfaceOrientation == UIInterfaceOrientationLandscapeLeft)||(self.interfaceOrientation == UIInterfaceOrientationLandscapeRight)) 
{ 
    [self setTextViewHeight:107]; 
    NSLog(@"inside if self.interfaceorientation..."); 

} 

답변

0

textviewheight 할당하기 전에 로그 문을보십시오 (&은 할당 오류로 인해 일찍 종료되는 경우가 아님)

+0

감사합니다. 예. 그랬습니다 ... 모든 곳에서 기록되었습니다. 또한 메서드의 맨 위에 중단 점을 설정하고 코드를 단계별로 진행하여 if 블록이 3.0에서 건너 뛰고 2.x에서 실행되는 것을 보았습니다. 난 단지 가독성을 위해 대부분을 사용했습니다 ... –

1

이유는 모르지만이보기 컨트롤러는 자신의 interfaceOrientation을 알지 못합니다. 나는 그것이 UITabBarController의 "내부"라는 사실과 관련이 있다고 가정합니다 ... 그리고 Apple이 3.0으로 변경 한 것을 처리하는 "새로운 방식"이 있습니다.

"변경"에 대한 설명을 환영합니다!

최종선 self.interfaceOrientation 항상

내가 같은 기준을 변경하는 대신 MyTabBarController.interfaceOrientation를 사용하여이를 해결 ...없이 장치가 회전 한 방법 ("업") 1로 평가 하였다 TabBarController "superclass"는 장치의 방향이 무엇인지를 "알고"있는 것처럼 보였습니다.

그 참조를 감안할 때 ...이 이미 코드에 존재하는 (물론,이 클래스를 MyTabBarController로드 자체로 모든 UIViewControllers이 ...했을 때의 MyTabBarController에 대한 참조를 제공했다) 간단한 변경 다음은 나에게 회전의 "진정한"상태에 대한 액세스 권한을 준 ...이 코드는 예상 할 때 ... 실행

if ((myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeLeft) || (myTabBarController.interfaceOrientation == UIDeviceOrientationLandscapeRight)) { 
    [self setTextViewHeight:116]; 
+0

An 보기에서이 동작에 대한 설명 Controller 프로그래밍 가이드 : "iPhone 응용 프로그램에서 창 개체는 현재 방향 변경과 관련된 많은 작업을 수행합니다. 특히 가장 최근에 루트보기가 있던보기 컨트롤러에서 작동합니다 창에 추가되거나 창에 표시됩니다.즉, 윈도우 객체는 "View Controller의 뷰 표시"에 설명 된 메커니즘 중 하나를 사용하여 뷰가 표시된 전면 뷰 컨트롤러에서만 작동합니다. – jemmons

+0

@jemmons이 주석과 대답이 아닌 이유는 무엇입니까? 이 페이지에서 가장 정확한 답변입니다. – bentford

관련 문제