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

這就是我正在使用的代碼。當我點擊後退按鈕時,backButtonTapped方法永遠不會被調用(我在其上放置了一個斷點),並且我可以通過命令單擊backButtonTapped文本跳轉到該方法,所以我知道它在那裏。爲什麼我的後退按鈕不適用於iOS 7?

但是,如果將其設置爲leftBarButtonItem,則不會顯示任何按鈕,但是敲擊該區域會將我帶回。

+0

是否該方法有一個參數或沒有?選擇器是否有效? – Wain

+0

對不起,錯字,不,不。 –

+0

你的意思是選擇器有效嗎? –

回答

2

使用self.navigationItem.backBarButtonItem設置該被壓入導航堆棧,而不是爲當前視圖控制器(例如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; 
} 
相關問題