9

IB에서 간단한 UI를 만들었습니다. 오른쪽에 드래그 앤 드롭 한 UINavigationBarUIBarButtonItem으로 구성되어 있습니다.UIBarButtonItem을 숨기려면 어떻게해야합니까?

이 버튼을 특정 시간 동안 숨기려고했지만 몇 가지 문제가 있습니다. 지금까지 내가 사용 시도

: 나를 위해 작동하지 않았다

self.NavigationItem.rightBarButton = nil; 

.... 나는 또한 IBOutlet을 생성하고 버튼에 연결하려고했지만 이것 역시 문제가 있습니다. 나는 그것이 아주 간단해야하고 어쩌면 내가 지나치게 복잡하게해야한다고 생각하지만,이 시점에서 나는 꽤 난처한 상황에 처해있다!

누군가 나를 도울 수 있습니까?

+0

NavigationItem 출력이 설정되어 있는지 확인하십시오. – logancautrell

답변

25

UINavigationItemrightBarButton 속성을 가지고 있지 않습니다. 대신 rightBarButtonItem (또는 [self.navigationItem setRightBarButtonItem:nil animated:NO];)를보십시오 :

self.navigationController.navigationItem.rightBarButtonItem = nil; 
// Or 
self.navigationItem.rightBarButtonItem = nil; 
// Or 
[self.navigationItem setRightBarButtonItem:nil animated:NO]; 
0

UIButton을 UIBarButtonItem의 customView로 추가 할 수도 있습니다. 그런 다음 customView (UIButton)의 숨김 속성을 설정하십시오.

0

바 버튼 항목을 삭제하고 단추와 해당 스토리 보드 부분을 삭제하는 대신 비활성화되었을 때 텍스트를 지우도록 설정할 수 있습니다. 당신이 가장 원하는 바 버튼 항목이 숨겨진 경우

[self.navigationItem.rightBarButtonItem setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor clearColor]} 
                 forState:UIControlStateDisabled]; 

그런 다음, 당신은 다만 할 수 있습니다

self.navigationItem.rightBarButton.enabled = NO; 

그것은 거기에 숨겨진 속성이 없습니다하지만이 같은 결과를 제공 절름발이입니다.

0

사실, 당신은 원하는 UIBarButtonItem에 함께 IBOutlet 참조를 만들 수 있으며, 필요할 때 바로 다음과 같이 수행

[self.yourOutletRerence setImage: nil]; 
0

가장 간단한 솔루션 : 그냥 사용자 정의에 BarButtonItem의 ID를 변경합니다.

관련 문제