2011-11-24 4 views
-1

내 iPad 앱에서 첫 번째 화면으로 하나의 xib 파일을 사용하고 있습니다. 해당 xib 파일에서 배경 및 한 버튼의 이미지보기를 사용하고 있습니다. 버튼을 클릭하면 이동합니다. 다른 페이지. 내 응용 프로그램은 두 방향을 모두 지원합니다. 이제 문제는, 그 버튼을 클릭하고 두 번째 페이지로 이동 한 다음 장치의 방향을 변경 한 다음 메인 페이지로 돌아가서 이제 기본 페이지의 버튼 프레임이 변경되었다고 가정합니다 . 그래서 두 번째로 두 번째 페이지로 이동하려면 클릭 할 위치를 이해할 수 없습니다.iPad 오리엔테이션 및 xib 파일

이 문제를 해결하는 데 도움을주십시오.

답변

1

nav 컨트롤러와 독립적으로 작동하는 훨씬 좋은 방법을 발견했습니다. 지금은 nav 컨트롤러에 임베디드되어있을 때, 그리고 임베디드되지 않은 경우에도 작동합니다 (nav 컨트롤러를 사용하지는 않지만 볼 수없는 버그가있을 수 있습니다. 예를 들어 PUSH 전환 애니메이션이 나타날 수 있습니다. 재미 있거나 뭔가)

Apple의 명명 규칙을 사용하는 두 개의 NIB. 필자는 iOS 6 또는 7에서 Apple이이를 "기능"으로 추가 할 것으로 생각합니다. 나는 애플 리케이션에서 그것을 사용하고 완벽하게 작동합니다 :

트리거는 WILL 회전을합니다. Apple이 가로 방향 버전을 자동으로로드하게하려면 png가 Default-landscape.png입니다. 은 새 NIB 을 다시로드하여 self.view를 다시로드합니다. 그러면 디스플레이가 자동으로 업데이트되고 이 표시되고 viewDidLoad가 호출됩니다.

(NB stackoverflow.com은이 문장이 필요합니다. 코드 포맷터에 버그가 있습니다.)

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration 
{ 
    if(UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) 
{ 
    [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@-landscape", NSStringFromClass([self class])] owner:self options:nil]; 

    [self viewDidLoad]; 

} 
else 
{ 
    [[NSBundle mainBundle] loadNibNamed:[NSString stringWithFormat:@"%@", NSStringFromClass([self class])] owner:self options:nil]; 
    [self viewDidLoad]; 

} 
}