2011-02-28 5 views
0

인사말을 다시 캡처 아이폰 : 버튼 이벤트를

내가 가지고있는 뒤로 가기 버튼의 이벤트 캡처 다음 코드를 여기

[self.navigationItem setBackBarButtonItem:[[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStylePlain target:self action:@selector(doLogout:)]]; 

그리고 내 doLogout입니다 :

-(void) doLogout:(id)sender{ 
    NSLog(@"hi"); 
} 

이 모든 것이 컴파일 잘 실행되고 뒤로 버튼 텍스트가 "로그 아웃"으로 변경됩니다.

유일한 문제는 내 doLogout 기능이 호출되지 않는다는 것입니다.

어떻게해야합니까? 내가 지금 시간이에 붙어 봤는데 ... (미리

많은 감사,

+0

문제가 해결되지 않았지만 작성한'setBackBarButtonItem' 메소드가 메모리를 누설합니다. 새로운'UIBarButtonItem'을 할당하지만 결코 해제하지 마십시오. – kubi

답변

0

공식 문서 :

이 항목을 탐색 바시의 뒷면 항목입니다 이 아이템은 네비게이션 바에서 뒤로 버튼으로 나타낼 수 있습니다.이 속성을 사용하여 뒤로 버튼을 지정하십시오. 설정 한 바의 뒤로 가기 버튼 항목의 대상과 동작은 030입니다. 기본값은 탐색 항목의 제목을 표시하는 막대 버튼 항목입니다.

+0

아, 맞아요, 제 생각 엔 저에게 희망이 없습니다 ... – Eamorr

+0

기본 뒤로 버튼을 숨기고 직접 버튼을 쓸 수 있다고 생각합니다 ... – Alessandro

+3

대신에 viewWillDisappear를 구현합니다 : – amattn

0

Inst "뒤로 버튼 이벤트"를 잡으려고 애쓰는 이유는 무엇입니까? 단지 UIViewController viewDidUnload을 재정의하려고하지 마십시오.

+0

그는 특별한 논리를 원할 수도 있습니다. 사용자가 명시 적으로 뒤로 버튼을 누르면 뷰가 사라지는 것이 아니라 뷰 컨트롤러를 푸시하면 뷰가 사라질 수 있습니다. –

+0

@Hisoka viewController를 밀면 'viewDidUnload'가 호출되지 않습니다. (메모리 경고가 있지 않는 한 다른 주제입니다.) 뷰는 메모리에서 제거 될 때만 언로드됩니다. 일반적으로 (뒤로 단추)를 떠날 때 발생합니다. 또 다른 해결책은'UINavigationControllerDelegate'를 사용하는 것입니다. –

0

상위보기 컨트롤러에 backBarButtonItem을 설정하는 대신 하위보기 컨트롤러에서 leftBarButtonItem을 설정할 수 있습니다. 임의의 바 버튼 항목이 될 수 있으며 모든 작업 메시지는 정상적으로 전달되어야합니다. 이 작업은 뒤로 버튼으로 수행되므로 작업 방법 중 하나에서 하위 컨트롤러를 수동으로 팝업해야합니다.

관련 문제