2012-01-02 2 views
3

휴대 전화가 가로 방향으로 회전 할 때 내 탐색 막대가 44px에서 32px로 축소되지 않도록하려고합니다. 뷰를 회전 할 때 navigationBars 프레임을 설정하고 viewDidAppear에서도이 작업을 수행 할 수있었습니다. 그러나 홈 버튼을 눌러 앱을 종료 한 다음 앱에 다시 들어가면 탐색 바가 여전히 축소됩니다. 그래서 UIApplicationDidBecomeActiveNotification을 감지하는 알림을 구현했으며 해당 메서드에서 navigationBar 프레임 높이를 44 픽셀로 재설정했습니다. 그러나, 뭔가 내 뷰 프레임을 다시 설정하는 호출되고 있기 때문에 작동하지 않습니다. 누구든지 UIApplicationDidBecomeActiveNotification이 viewcontrollers 프레임을 다시 설정 한 후에 호출되는 것을 알고 있습니까?UIApplicationDidBecomeActiveNotification이 트리거 된 후에 호출되는 항목은 무엇입니까?

+0

보기가 펜촉으로 구성되어 있습니까? – kocodude

+0

@kocodude - 프로그래밍 방식으로 구성되지 않았습니다. –

답변

0

응용 프로그램에서 모든 클래스는 다른 알림을위한 "관찰자"가 될 수 있습니다. 보기 컨트롤러를 만들 때 UIApplicationDidBecomeActiveNotification에 대한 관찰자로 등록하고 해당 알림이 응용 프로그램에 전송 될 때 호출 할 메서드를 지정할 수 있습니다.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMethod:) name: UIApplicationDidBecomeActiveNotification object:nil]; 

당신의 필요에 따라 ViewWillDisappear/viewDidDisAppear /의 dealloc에서 제거 관찰자 : 당신이 키 값 관찰자를 통해 관찰자를 연결하면

[[NSNotificationCenter defaultCenter] removeObserver:self]; 
저도 같은 문제에 봉착
+0

예, 제가했습니다. 뷰가 비활성 상태에서 돌아 오면, 프레임을 어떻게 든 리셋하거나 레이아웃을 재구성합니다. 정확히 무슨 일이 일어 났는지 궁금합니다. –

+0

응용 프로그램이 활성화되면 알림을 게시하고 해당 알림을 잡기 위해 관찰자를 추가했으며 그 안에 정의 된 작업이 작동합니다. 그것은 아주 간단합니다. 다음 개발자 링크에서 알림에 대한 일부 정보를 참조 할 수 있습니다. http : //developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSNotificationCenter_Class/Reference/Reference.html – rishi

+0

예. 알고 있습니다. 그 말은, 응용 프로그램이 활성화되면 다른 것을 호출하여 탐색 막대 프레임을 다시 설정한다는 것입니다. –

0

, 당신은 무언가가 볼 수 있습니다 UIApplicationDidBecomeActiveNotification 다음에 호출됩니다.

관련 문제