2011-04-20 7 views
0

범용 앱을 제작 중이지만 여기서는 iPad에서만 회전을 지원합니다.앱 회전시 배경 이미지 변경

이미지를 배경으로 볼 수 있습니다. 사용자가 iPad를 회전하면 willRotateToInterfaceOrientation에서이 인물 사진을 희미하게하고 이미지를 didRotateFromInterfaceOrientation의 가로 이미지로 바꿉니다. (내가 듣고 싶은 더 좋은 방법이 있다면,하지만이 문제는 이것에 관한 것이 아닙니다.)

이보기에는 하나의 버튼이있어서 스택에 새로운 뷰 컨트롤러를 푸시합니다. 이 뷰 컨트롤러에는 푸시 된 뷰와 동일한 "기능"이 있습니다. 내가 도움이 필요한 것은 : iPad를 세로에서 (이보기가 푸시 된 방향이었던) iPad에서 가로로 회전하면이 "두 번째"보기의 이미지가 의도 한대로 변경됩니다. 그러나이 viewcontroller 스택을 꺼내면 "첫 번째"뷰는 여전히 세로 방향이 아닌 가로 방향으로 만들어진 이미지를 표시합니다 ... 이유는 알지만 어떻게 수정해야하는지 이해합니다.

누구든지 도와 줄 수 있습니까? 시간 내 주셔서 감사합니다.

+1

당신은 당신의 viewWillDisappear에 (UIDevice 설명서를 확인) 장치의 방향을 저장할 수 있습니다 (영업 대답으로 게시 나에게 말했다). –

+0

@Marcelo 예, 가능합니다. – LuckyLuke

+0

@Marcelo 안녕하세요, 저는 당신이 한 말을 구현했습니다. 그리고 그 일을 훌륭하고 간단한 방법이라고 생각합니다. 고맙습니다. 당신이 대답을 받아 들일 수 있도록 당신의 코멘트를 옮겨야한다고 생각합니다 :) – LuckyLuke

답변

1

당신은 장치 방향을 절약 할 수 있습니다에 (UIDevice 설명서를 확인하십시오) viewWillDisappear : viewWillAppear : 메서드에서 확인하고 필요한 경우 애니메이션을 호출합니다. 필요한 경우 애니메이션을 호출 방법과 viewWillAppear에 그것을 확인 :

0

첫 번째보기 컨트롤러의 viewWillAppear 방법을 사용하십시오. 거기에서 [[UIDevice currentDevice] orientation]을 호출하여 장치의 방향을 찾고 그에 따라 배경 이미지를 설정할 수 있습니다.

1

컨트롤러가 맨 위 스택에 없으면 항상 UIDeviceOrientationDidChangeNotification에 등록하고 이미지를 변경할 수 있습니다. (당신이 컨트롤러를 밀어 언급 이후)는 컨트롤러에 의해 상단에있는 경우, 당신은 알아낼 수있는 UINavigationController가를 사용하는 가정

:

if ([[self navigationController] topViewController] == self) { 
    // do magic 
}