在導航控制器中設置后退按鈕的動作我試圖覆蓋導航控制器中Back按鈕的默認操作。我在自定義按鈕上提供了一個目標動作。奇怪的是,當分配它時,盡管是回退按鈕屬性,它沒有注意到它們,它只是彈出當前的視圖并返回到根:UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
initWithTitle: @"Servers"
style:UIBarButtonItemStylePlain
target:self
action:@selector(home)];self.navigationItem.backBarButtonItem = backButton;一旦我讓它通過leftBarButtonItem在navigationItem它調用我的動作,然而,這個按鈕看起來像一個普通的圓形按鈕,而不是一個箭后的按鈕:self.navigationItem.leftBarButtonItem = backButton;在返回根視圖之前,如何讓它調用我的自定義操作?是否有一種覆蓋默認回退操作的方法,還是在離開視圖時總是被調用的方法(viewDidUnload不是這樣的)?
3 回答

烙印99
TA貢獻1829條經驗 獲得超13個贊
-(void) viewWillDisappear:(BOOL)animated { if ([self.navigationController.viewControllers indexOfObject:self]==NSNotFound) { // back button was pressed. We know this is true because self is no longer // in the navigation stack. } [super viewWillDisappear:animated];}

侃侃無極
TA貢獻2051條經驗 獲得超10個贊
navigationShouldPopOnBackButton
UIViewController
-(BOOL) navigationShouldPopOnBackButton { if(needsShowConfirmation) { // Show confirmation alert // ... return NO; // Ignore 'Back' button this time } return YES; // Process 'Back' button click and Pop view controler}
- 3 回答
- 0 關注
- 368 瀏覽
添加回答
舉報
0/150
提交
取消