2011-01-15 7 views
1

오늘 아이폰 앱을 테스트하고 디버깅하는 중 일부 이상한 동작이 발생했습니다. 내 MainView에서iPhone - viewDidUnload/viewDidLoad가 일관성없이 호출되었습니다.

나는 두 모달 뷰를 가지고 presentModalViewController를 사용하여이 중 하나를 표시 할 때 나는 다른를 보여주는 경우가 발생하지 동안 내 MainViewviewDidUnload 메서드가 호출 된 것을 지적했다. 하위보기를 닫는 동안 viewDidLoad 메서드 (MainView)의 경우는 마찬가지입니다.

나는 서브 뷰를 열고 닫는 두 가지 방법을 조사했는데 발견 된 유일한 차이점은 modalTransitionStyle입니다. viewDidUnload/viewDidLoad을 활성화 한 사람은 UIModalTransitionStyleFlipHorizontal이고 다른 사람은 UIModalTransitionStyleCrossDissolve입니다. 그런 다음 두 스타일을 바꾸고 다른 전환 스타일을 사용하여 실험을 시작했습니다. 실제로 이것이 다른 동작을 유발하는 것으로 나타났습니다. 실제로 UIModalTransitionStyleFlipHorizontal을 사용할 때 "부모"뷰 컨트롤러의 viewDidUnload/viewDidLoad 메서드는 항상 다른 전환 스타일에 대해 발생하지 않았지만 항상 호출되었습니다.

제 질문은 이제 이와 같이 행동해야하고, 그렇지 않은 경우 올바른 행동입니다. 모달 뷰를 표시하고 닫을 때 unload 및 load 메서드가 호출되어야합니다.

다른 사람이이 동작을 확인하거나 disconfirm 할 수 있습니까?

탄원

ps. 두 개의 뷰 컨트롤러라고하는 viewDidLoad 메서드는 매번 호출됩니다. 그냥 명확히 :)

+0

iOS 시뮬레이터 또는 기기에서 이런 일이 발생합니까? 어떤 SDK를 사용하고 있습니까? – Felix

+0

사용중인 SDK의 버전을 알려주십시오. viewDiDLoad 및 viewDidUnload가 호출되었는지 여부를 확인하기 위해 사용중인 실제 코드를 표시하면 도움이 될 수도 있습니다. –

+0

@ phix23 : 이것은 iOS 4.2.1을 실행하는 iPhone 4 (기기)에서 발생합니다. SDK 4.2 사용하고 있습니다. – pajevic

답변

0

모달보기를 표시하고 닫을 때 불러올로드 및로드 메소드가 있습니까?

동작은 현재 메모리 상황에 따라 달라집니다. 메모리가 부족하면 시스템은 모든 경고 컨트롤러에 메모리 경고를 보냅니다. 뷰가 현재 화면 상에 있지 않은 뷰 컨트롤러는 뷰를 언로드함으로써 메모리 경고에 반응합니다 (화면에 다시 나타나면 뷰가 다시로드 됨).

장치의 메모리 상황과 표시중인 모달보기 컨트롤러의 메모리 요구 사항에 따라 언로드 /로드 동작이 달라야합니다. 그것은 modalTransitionStyle IMO에 의존해서는 안됩니다.

+0

"modalTransitionStyle에 의존해서는 안됩니다."- 나는 완전히 동의합니다. 그러나 적어도 내 경우에는 그렇지. 나는이 thouroly를 정말로 테스트했다. 나는 아직도 다른 누군가가 이것을 만나기를 희망하고있다. – pajevic

관련 문제