2013-05-13 52 views

回答

4

如果你不打算攔截後退按鈕挖掘本身,而是當前視圖控制器消失的行爲,你可以使用:

- (void)viewWillDisappear:(BOOL)animated { 
    if (self.isMovingFromParentViewController) { 
     // handle back button press 
    } 
} 

如果你確定你想要做的後退按鈕,您可以創建自己的自定義UIBarButtonItem並將其設置爲當前控制器的leftBarButtonItem。完成自己的邏輯後,請務必致電[self.navigationController popViewControllerAnimated:YES]

+0

一旦它出現在viewWillDisappear,不喜歡我可以取消此過程的權利。如果事情還沒有完成,我想取消流程。 – 2013-05-14 05:16:25

+0

正確,此時您無法取消它。如果這是你的目標,我會添加一個自定義按鈕來實現任何邏輯,直到你準備好或者只是禁用/刪除系統提供的後退按鈕(也許用取消按鈕取代它)而忽略觸摸。 – jszumski 2013-05-14 13:30:56

0

添加下面的代碼在應用程序中的viewDidLoad中:

UIButton *btnBack = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [btnBack setFrame:CGRectMake(0.0f, 0.0f, 55.0f, 35.0f)]; 
    [btnBack addTarget:self action:@selector(backClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    [btnBack setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal]; 

    UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:btnBack]; 

    self.navigationItem.leftBarButtonItem = backButton; 

此創建自定義後退按鈕。 「Back.png」與OS的圖像相同。

添加以下代碼作爲功能。這個彈出到RootViewcontroller。

- (void) backClicked:(id)sender { 

// perform certain task 
// If task is completed then call below LOC 

[self.navigationController popToRootViewControllerAnimated:YES]; } 

enter image description here