0

나는 navbar를 사용하는 앱을 가지고 있습니다. 내가 성취하고자하는 것은 탐색 순서에서 마지막 뷰를 밀 때 투명하게 만들고 탐색에서 뒤로 버튼을 클릭 할 때 불투명하게 만듭니다.Iphone UINavigationController onchange 이벤트

나는 dealoc에서 시도했지만 작동하지 않습니다. . 내보기는 UiView가 아닌 ​​UIScrollView이지만 차이는 없습니다. 내가보기로

, eighter 나는 탐색 모음에서 이벤트를 제어하고, 루프 뷰의 종류를 참조하거나 내 현재보기의 "하역"에 대한 몇 가지 이벤트를 트리거해야

전 보기를 밀어 넣으십시오. self.navigationController.navigationBar.barStyle = UIBarStyleBlackTranslucent;

및 튀어 나올 때 필요한

self.navigationController.navigationBar.barStyle = UIBarStyleBlackOpaque;

+0

저는 투명 NavBar를 본 적이 없습니다. 당신이 스크린 샷이나 이것을 가지고있는 앱을 가르쳐 주시겠습니까? 그래서 당신이 말하는 것을 볼 수 있습니까? –

+0

네가 가지고있어. 내장 사진 응용 프로그램을 사용하여 일부 사진을 봅니다. – Nimrod

답변

1

UINavigationController 또는 UITabController를 사용하여 뷰를 밀고 팝하면 뷰 {Will, Did} {Appear, Disappear} 메서드가 호출되므로 자식 뷰의 ViewWillDisappear에 연결해야한다고 생각합니다.

최상위 수준 탐색 컨트롤러가 자선 위임자로 설정되고 하위 노드가 네비게이션 스타일을 변경하는 "언로드 중"유형의 함수로 해당 델리게이트를 호출하도록 설계했습니다.

0

dealloc을 호출 할 때 실제로 호출 할 수는 없지만 원하는 경우는 훨씬 적습니다. 이는 보관 된 객체를 해제하는 데에만 사용해야합니다.

barStyle 변경 사항을 뷰 컨트롤러의 viewDidAppear 및 viewDidUDisappear 메서드에 추가 할 수 있어야한다고 생각합니다.

1

실제로 가장 좋은 방법은 UINavigationControllerDelegate를 사용하는 것입니다. 나는 UINAvigationController를 확장하고 delegate를 self로 설정하고 UINavigationControllerDelegate 프로토콜의 메서드 중 하나를 사용했습니다.

관련 문제