uinavigationbar에서 버튼을 연결하려면 어떻게해야합니까?
-
11-09-2019 - |
문제
나는 a UINavigationBar
XIB 형식으로. 그런 다음 a UIButton
양식에 ( UINavigationBar
). 유형을 변경했습니다 InfoLight
(정보 기호처럼 보이도록).
그런 다음 Uibutton을 그 위로 끌었습니다 UINavigationBar
오른쪽 버튼으로 설정하십시오. 유형을 마술처럼 바꿉니다 UIButton
에게 UIButtonBarItem
드래그의 결과로.
왜 내가 방금 끌지 않았다 UIButton
에 UINavigationBar
우선 첫째로? 버튼이 있으면 인터페이스 빌더가 유형을 InfoLight
이유가 무엇이든지.
인접한 .h 파일에서 나는 IBAction
- (IBAction) btnInfoClick;
그런 다음 .m 파일에서 구현을 썼습니다.
- (IBAction) btnInfoClick {
// kick off the about screen
// code follows
}
이제 내비게이션 바의 버튼을 BtninFoclick 함수에 연결하려면 어떻게해야합니까?
아니면 시작하는 잘못된 방법으로 가고 있습니까?
라이브러리에서 버튼을 내비게이션 막대로 바로 드래그하면 파일 소유자 아이콘을 클릭 한 다음 BtninFoclick을 드래그 할 수 있습니다. IBAction
버튼에. 이 경우 클릭 이벤트가 정상화됩니다.
그러나 버튼을 먼저 다른 곳으로 끌고 내비게이션 막대로 끌어 올리는 시나리오에서는 이벤트가 시작되지 않습니다. 내가 뭘 잘못하고 있는지 잘 모르겠습니다.
해결책 2
IB의 버그라고 생각합니다. 그러나 나는 해결 방법을 찾았다 여기. 후손을위한 재 게시 :
- 보기에서 버튼을 만듭니다 (내비게이션 바가 아닙니다!)
- 이 버튼을 정보 표시등으로 설정하십시오
- 이 버튼에 대한 조치를 내부에 터치 할 조치를 설정하십시오.
- 버튼을 탐색 표시 줄로 이동하십시오
다른 팁
IB를 열고 Uibarbuttonitem을 선택하고 검사관에서 연결 탭으로 이동하십시오.
오른쪽의 점에서 드래그 선택자 너의 ~에게 AppDelegate/파일의 소유자 (조치가 정의 된 곳) 및 조치를 선택하십시오.
나는 당신이 이미 그것을 시도했지만 만일을 대비한다고 생각합니다. 동작이 나타나지 않으면 액션 정의를 다음과 같은 것으로 조정하십시오.
- (IBAction)btnInfoClick:(id)sender;
그리고 프로세스를 다시 시도하십시오. 나는 당신이 실제로 발신자를 지정할 필요가 없다는 것을 알고 있지만 (적어도 프로그래밍 방식으로, 항상 사용하는 방식) 같은 문제가 있었고 발신자 매개 변수를 추가 한 후 올바르게 작동했습니다.
행운을 빕니다. 이것이 작동하는지 알려주세요!