2012-03-19 70 views
1

我想在單擊backButton時調用一個動作,但似乎並不是這樣。backBarButtonItem不會調用動作

viewDidLoad在RootViewController的:

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] 
              initWithTitle:@"Logout" 
              style:UIBarButtonItemStyleDone 
              target:self 
              action:@selector(logout)] autorelease]; 

它的標題是正確的,但沒有任何反應。

logout(在RootViewController的) 頭:

-(void)logout; 

體:

-(void)logout { 
    NSLog(@"test"); 
    [[User owner] logout]; 
} 

誰能告訴我怎麼解決這個問題,因爲我不知道。謝謝

+0

你可以顯示代碼如何定義註銷方法? – 2012-03-19 04:58:36

回答

4

您只能更改backBarButton的標題。您可以嘗試使用viewWillDisappear或viewDidDisappear函數,但不僅可以在按下按鈕後調用它們。 leftBarButton是更好的解決方案,但此按鈕的視圖與backBarButton的視圖不同。

+0

是的,他們肯定看起來不一樣。當我在控制器上推物品時也會調用「viewDidDisappear」。 – chikuba 2012-03-19 20:02:08

+0

我意識到iOS中的一個程序在幾種情況下調用viewDidDisappear或類似的函數(而不是backBarButton),但我仍然沒有試圖檢查這個事件的發送者 – Gargo 2012-03-20 07:09:50

3

backBarButtonItem特別存在以改變後退按鈕的外觀。如果您需要自定義操作,則應考慮使用leftBarButtonItem

相關問題