2009-04-29 10 views
8

이것은 바보 같은 질문 일 수 있지만 UIBarButtonItem은 복수보기에서 UINavigationController으로 관리 할 수 ​​있습니까? 나는 종종 같은 오른쪽 UIBarButtonItem을 공유하는 뷰의 진행을 가지고 있지만 새로운 뷰를 내 UINavigationController으로 푸시 할 때마다 변경되지 않아도 언제든지 버튼을 재정의해야합니다. 대부분 하나의 뷰에서 다음 뷰로의 눈에 띄는 과도기 애니메이션은 정확한 시각적 변경이 없기 때문에 똑같은 버튼이 잠시 후 다시 페이드 아웃되고 다시 불필요하기 때문에 나를 귀찮게합니다. UIButton을 내 UINavigationBar의 하위보기로 추가하고이 방법으로 "오른쪽 막 대 버튼"효과를 얻는 것을 고려해야합니까?UINavigationItem의 영구적 인 rightBarButtonItem 속성

답변

14

Google 앱에서이 작업을 수행했습니다. 사용자가 탐색 할 때 하나의 UIViewController에서 다른 UIViewController로 바꾸는 단일 UIBarButtonItem을 만들었습니다. 트릭은 UINavigationControllerDelegate, navigationController : willShowViewController : animated : 메서드를 사용하는 것이 었습니다. 나가는 UIViewController의 rightBarButtonItem을 nil로 설정하고 들어오는 컨트롤러의 rightBarButtonItem을 버튼에 설정합니다. 관리하는 것이 고통이지만 작동합니다.

+0

굉장! 고맙습니다. 나는 UINavigationControllerDelegate를 조사하는 것을 잊었다. – LucasTizma

+0

감사합니다 !! 나를 위해 일했다! :) –

+0

안녕하세요, 나가는 UIView 컨트롤러를 어떻게받을 수 있습니까? 그것은 내가 제시 할 수있는 것을 얻을 수있는 것 같지만 현재의 것이 아닙니다. 건배 – zanona

1

UIBarButtonItems는 nib/xib 파일의 독립 실행 형 인스턴스로 만들 수 있습니다. 인터페이스 작성기에서 단추를 작성할 수 없도록 특별한 일이 없다면 단추를 다시 사용해야하는 각보기 컨트롤러에 대해 UINavigationItem의 rightBarButtonItem 속성에 연결해야합니다. 객관적 c 필요 없음.

+0

안녕하세요 매트, 좀 더 구체화 할 수 있습니까? 예제 코드 NavBar.xcode의 구현이라고 생각합니다.하지만 모든 문제를 해결하는 데 어려움이 있습니다. (BTW - 나는 그것이 정확하고 더 우아한 솔루션이라고 생각하여 답변에 투표했습니다.) – mobibob

관련 문제