В моем приложении у меня есть базовый навигационный контроллер. Для всех моих взглядов, кроме одного, контроллер работает так, как должен.iPhone: Как переопределить кнопку «Назад» в навигационном контроллере?
Однако, для одного вида, в частности, я хотел бы, чтобы кнопка «назад» не возвращалась к предыдущему виду, а чтобы перейти к одному из них. В частности, он вернется к 2 взглядам и пропустит один.
После выполнения некоторых исследований я обнаружил, что я могу перехватить взгляд, когда он исчезает, так что я пытался поставить в код, чтобы он перейти на страницу, я хотел бы:
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
//i set a flag to know that the back button was pressed
if (viewPushed) {
viewPushed = NO;
} else {
// Here, you know that back button was pressed
mainMenu *mainViewController = [[mainMenu alloc] initWithNibName:@"mainMenu" bundle:nil];
[self.navigationController pushViewController:mainViewController animated:YES];
[mainViewController release];
}
}
Это не сработало, и у кого-нибудь есть идеи?
Спасибо!
Пока что отлично работает! Благодарю за ваш ответ!! Я смог создать пользовательскую кнопку, создать метод и построить массив со списком открытых представлений. Тем не менее, я получаю ошибку «uncached exception», когда я перешагиваю строку popToViewController ... Я даже пробовал это: [self.navigationController popToViewController: [vcs objectAtIndex: 1]]; но безрезультатно. Сейчас я больше разбираюсь в popToViewController. –
В итоге я использовал: [self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: 0] анимированный: ДА]; вернуться назад два уровня .. отлично работает до сих пор, так что спасибо! –
Если вы хотите вернуться на верхний уровень, есть popToRootViewControllerAnimated: он должен работать. –