ответ

4

Если вы не намерены перехватить кнопку назад нажмите себя, но вместо того, чтобы акт текущего исчезающего вида контроллера, вы можете использовать:

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

Если вы уверены, что вы хотите сделать кнопку назад , вы можете создать свой собственный UIBarButtonItem и установить его на текущий контроллер leftBarButtonItem. Обязательно позвоните по номеру [self.navigationController popViewControllerAnimated:YES] после того, как закончите свою собственную логику.

+0

После того, как он показывает на viewWillDisappear, не так, как я могу отменить право процесса. Я хочу отменить процесс, если все еще не выполнено. –

+0

Правильно, на этом этапе вы не можете отменить его. Если это ваша цель, я бы либо добавил пользовательскую кнопку, чтобы реализовать любую логику, чтобы игнорировать касания до тех пор, пока вы не будете готовы или просто отключите или удалите кнопку возврата системы (возможно, замените ее кнопкой «Отмена»?). – jszumski

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» - это изображение, аналогичное изображению ОС.

Добавить ниже код как функцию. Этот всплывает в RootViewcontroller.

- (void) backClicked:(id)sender { 

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

[self.navigationController popToRootViewControllerAnimated:YES]; } 

enter image description here