12

rightBarButtonItem을 숨기는 방법을 아는 사람이 있습니까? 내 응용 프로그램에서 의 rightBarButtonItem으로 편집 단추가 있습니다. 나는 이것을 숨기고 싶다? UIBarButton`을 호출합니다.내비게이션 컨트롤러의 rightBarButtonItem 숨기기

+0

'self.navigationItem.rightBarButtonItems [1] setEnabled : NO];'배열이있는 경우 유연한 공간을 사용하는 것과 같습니다. –

답변

11

다시 원하는 때 당신이

UIBarButtonItem *rightBarButton = 
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch 
               target:self 
               action:@selector(searchBar:)]; 
self.navigationItem.rightBarButtonItem = rightBarButton; 
[rightBarButton release]; 
+1

개체를 다시 만들지 않으려면 어떻게해야합니까? 예를 들어, navigationBar의 titleView에서 searchBar의 넓은 프레임에 rightBarButton을 숨기려고합니다. 내 말은 재산을 변경하거나 숨겨서 숨길 수 있습니까? UINavigationController를 하위 클래스 화하려면 –

+0

을 입력하십시오. 다음과 같이 할 수 있습니다 : self.topViewController.navigationItem.rightBarButtonItem = rightBarButton; 자체 귀하의 UINavigationController 사용자 정의 클래스입니다 –

15

오른쪽 버튼을 숨기기 위해 버튼 즉, 실체화 할 것이다하지만

self.navigationItem.rightBarButtonItem = nil; 

보십시오 : 이제 self.navigationItem.rightBarButtonItem = nil;

을, 그것을 보여주는에게 :

  1. self.editButtonItem에 할당하여보기 컨트롤러에서 오른쪽 버튼을 설정 한 경우 표시하려면 다시 할당하십시오.

    self.navigationItem.rightBarButtonItem = self.editButtonItem;

  2. UIBarButtonItem을 할당하고 초기화하여보기 컨트롤러에 오른쪽 버튼을 설정 한 경우보기 컨트롤러에서 UIBarButtonItem에 대한 참조를 유지하고 표시해야 할 때 다시 지정하면됩니다. 숨길해야하는 경우

+0

나는 Objective C에서 nil rightBarButtonItem 할당 시도했는데 나를 위해 작동하지 않습니다. –

10

/몇 가지 조건에 따라 버튼을 보여,이 시도 :

if (condition) { 
    self.navigationItem.rightBarButtonItem.title = @""; 
    self.navigationItem.rightBarButtonItem.enabled = NO; 
} else { 
    self.navigationItem.rightBarButtonItem.title = @"my button title"; 
    self.navigationItem.rightBarButtonItem.enabled = YES; 
} 

이 방법을 사용하면 속성에서 버튼에 대한 참조를 저장하거나 걱정할 필요가 없습니다 새 버튼에 작업을 연결하는 방법에 대해 설명합니다.

관련 문제