문제

나는 a UINavigationBar XIB 형식으로. 그런 다음 a UIButton 양식에 ( UINavigationBar). 유형을 변경했습니다 InfoLight (정보 기호처럼 보이도록).

그런 다음 Uibutton을 그 위로 끌었습니다 UINavigationBar 오른쪽 버튼으로 설정하십시오. 유형을 마술처럼 바꿉니다 UIButton 에게 UIButtonBarItem 드래그의 결과로.

왜 내가 방금 끌지 않았다 UIButtonUINavigationBar 우선 첫째로? 버튼이 있으면 인터페이스 빌더가 유형을 InfoLight 이유가 무엇이든지.

인접한 .h 파일에서 나는 IBAction

- (IBAction) btnInfoClick; 

그런 다음 .m 파일에서 구현을 썼습니다.

- (IBAction) btnInfoClick {
    // kick off the about screen
    // code follows
}

이제 내비게이션 바의 버튼을 BtninFoclick 함수에 연결하려면 어떻게해야합니까?

아니면 시작하는 잘못된 방법으로 가고 있습니까?

라이브러리에서 버튼을 내비게이션 막대로 바로 드래그하면 파일 소유자 아이콘을 클릭 한 다음 BtninFoclick을 드래그 할 수 있습니다. IBAction 버튼에. 이 경우 클릭 이벤트가 정상화됩니다.

그러나 버튼을 먼저 다른 곳으로 끌고 내비게이션 막대로 끌어 올리는 시나리오에서는 이벤트가 시작되지 않습니다. 내가 뭘 잘못하고 있는지 잘 모르겠습니다.

도움이 되었습니까?

해결책 2

IB의 버그라고 생각합니다. 그러나 나는 해결 방법을 찾았다 여기. 후손을위한 재 게시 :

  1. 보기에서 버튼을 만듭니다 (내비게이션 바가 아닙니다!)
  2. 이 버튼을 정보 표시등으로 설정하십시오
  3. 이 버튼에 대한 조치를 내부에 터치 할 조치를 설정하십시오.
  4. 버튼을 탐색 표시 줄로 이동하십시오

다른 팁

IB를 열고 Uibarbuttonitem을 선택하고 검사관에서 연결 탭으로 이동하십시오.

오른쪽의 점에서 드래그 선택자 너의 ~에게 AppDelegate/파일의 소유자 (조치가 정의 된 곳) 및 조치를 선택하십시오.

나는 당신이 이미 그것을 시도했지만 만일을 대비한다고 생각합니다. 동작이 나타나지 않으면 액션 정의를 다음과 같은 것으로 조정하십시오.

- (IBAction)btnInfoClick:(id)sender;

그리고 프로세스를 다시 시도하십시오. 나는 당신이 실제로 발신자를 지정할 필요가 없다는 것을 알고 있지만 (적어도 프로그래밍 방식으로, 항상 사용하는 방식) 같은 문제가 있었고 발신자 매개 변수를 추가 한 후 올바르게 작동했습니다.

행운을 빕니다. 이것이 작동하는지 알려주세요!

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top