2014-02-07 2 views
1

Storyboard 파일의 UIBarButtonItem 단추에 할당 된 continueButton 단추가 있습니다. 나는 같은 버튼을 선언했습니다 뷰로드, 내가 원하는 때 사용자 입력이 없을 수 있도록프로그래밍 방식으로 UIBarButtonItem을 사용/사용하지 않도록 설정하는 방법

- (IBAction)continueButton; 

는 버튼 자체를 해제하는 명령이에 대한 사용자 입력을 다시 수 있다는라고하지 않는 한 단추. 이 일을 어떻게 하죠? 프로그래밍 방식으로 단추를 사용/사용하지 않도록 설정하려면 [continueButton setEnabled:YES]; 함수를 사용하려고하는데 제대로 작동하지 않습니다.

+1

. 원하는 것은 스토리 보드의 버튼에 IBOutlet을 연결하여 참조 할 수 있도록하는 것입니다. IBAction은 버튼이나 기타 제스처를 처리하기위한 것입니다. – hgwhittle

+0

'uibarbuttonitem disable'에 대한 검색을 실행하면 무엇을 발견 할 수 있습니까? –

+1

아울렛과 작업을 혼동스럽게합니다. 그들은 다르다. IBAction은 컨트롤이 트리거 될 때 호출되는 컨트롤과 메서드 사이의 링크입니다 (일반적으로 탭뿐만 아니라 슬라이더의 값을 변경하는 것과 같은 다른 이벤트도 포함됨). IBOutlet은 IB 개체에서 사용자 개체로의 링크입니다 코드를 사용하여 객체를 참조 할 수 있습니다. 다른 사람들이 제안했듯이 바 버튼 항목과 뷰 컨트롤러 클래스 사이에 콘센트 링크를 만들어야합니다. 그런 다음 해당 콘센트를 사용하여 필요에 따라 항목을 활성화/비활성화 할 수 있습니다. –

답변

5

UIBarButtonItem 코드에 노출되지 않았습니다. 액세스 할 수있는 컨트롤의 속성을 보려면 hw731이 말한대로 IBOutlet (XIB와 코드 간 브리지)에 연결하거나 처음부터 프로그래밍 방식으로 만들어야합니다. 액션은 컨트롤에 의해 발생 된 이벤트에 메소드를 바인딩하는 것과 같습니다.

Example of outlet over action

당신이 .m 파일 대신 .h 파일에있는 연결의 가능성이 할 때 당신이 Outlet 또는 Outlet 수집에 대한 옵션을 볼 수 없습니다.

0

일부 의견을 읽은 후 UBarButtonItem을 IBAction 단추로 설정하지 말고 IBOutlet을 설정해야한다는 것을 알았습니다. 그렇게하고 Storyboards에서 버튼을 다시 연결하면 이전에 시도했던 명령이 효과가있었습니다.

[continueButton setEnabled:NO]; 

또는 (버튼을 가능하게하는)

:

당신이 UIBarButtonItem을 선언하는 방법이 아니다
[continueButton setEnabled:YES]; 
+0

답변으로 문제를 해결하는 데 도움이되면 답을 하나의 질문으로 받아 드리는 것을 잊지 마십시오. 해피 코딩! – Forrest

관련 문제