1
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:self action:@selector(backButtonTapped)]; 

그게 내가 사용하고있는 코드입니다. 뒤로 단추를 누를 때 backButtonTapped 메서드가 호출되지 않습니다.이 메서드에 점프하려면 backButtonTapped 텍스트를 명령 클릭하여 명령을 실행할 수 있습니다.iOS 7에서 뒤로 버튼이 작동하지 않는 이유는 무엇입니까?

그러나 이것을 leftBarButtonItem으로 설정하면 버튼이 나타나지 않지만 해당 영역을 가볍게 두드리면 다시 되돌아옵니다. self.navigationItem.backBarButtonItem 사용

+0

방법은 매개 변수를하거나하지 않습니다? 선택기가 유효합니까? – Wain

+0

죄송합니다, 오타, 아니요. –

+0

선택기가 유효하다는 것은 무엇을 의미합니까? –

답변

2

가 아닌 현재보기 컨트롤러 (예컨대 FirstViewController)에 대한 탐색 스택으로 밀리 다음보기 컨트롤러 (예컨대 SecondViewController)에는 후면 바 버튼 항목을 설정한다.

현재 스택에있는보기 컨트롤러에 대한 뒤로 단추를 설정하려면 현재보기 컨트롤러에서 leftBarButtonItem과 같이 설정하거나이 새보기를 밀어 넣는보기 컨트롤러에서 backBarButtonItem을 사용하십시오 스택

당신이 대신 "뒤로"

예처럼 뭔가로 설정의 제목을 공백으로 남겨 때문에 leftBarButtonItem가 사용되는 경우에는 단추가 없었다 이유 :

// Inside SecondViewController.m 
// 
// Customize left bar button item for SecondViewController 
// 
self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:self.navigationController action:@selector(popToRootViewControllerAnimated:)]; 

또는

// Inside FirstViewController.m 
// 
// Customize the back bar button item for SecondViewController 
// 
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; 

backBarButtonItem에 대상 또는 작업을 설정하지 않아도되는 점에 유의하십시오.

0

은 당신의 viewDidLoad 메서드에서 다음과 같은 시도 :

if ([self.navigationController.viewControllers count] > 1) 
{ 
    UIButton *backBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [backBtn setAdjustsImageWhenHighlighted:NO]; 
    [backBtn setShowsTouchWhenHighlighted:YES]; 
    [backBtn setContentHorizontalAlignment:UIControlContentHorizontalAlignmentLeft]; 
    UIImage *backBtnImage = [UIImage imageNamed:@"back.png"]; // <-- replace with your own image 
    [backBtn setImage:backBtnImage forState:UIControlStateNormal]; 
    [backBtn addTarget:self action:@selector(backButtonTapped) forControlEvents:UIControlEventTouchUpInside]; 
    backBtn.frame = CGRectMake(0, 0, 40, 40); 
    UIBarButtonItem *backBarBtnItem = [[UIBarButtonItem alloc] initWithCustomView:backBtn]; 
    self.navigationItem.leftBarButtonItem = backBarBtnItem; 
} 
관련 문제