W mojej aplikacji mam podstawowy kontroler nawigacyjny. Dla wszystkich moich widoków, z wyjątkiem jednego, kontroler działa tak, jak powinien.iPhone: Jak zastąpić przycisk Wstecz w kontrolerze nawigacyjnym?
Jednakże, w szczególności dla jednego widoku, chciałbym, aby przycisk "wstecz" nie wracał do poprzedniego widoku, ale aby przejść do poprzedniego, które ustawiłem. W szczególności cofnie się o 2 odsłon i pominie jeden.
Po wykonaniu niektórych badań odkryłem, że mogę przechwycić pogląd kiedy znika, więc starałem się umieścić w kodzie mieć to przejdź do strony Chciałbym:
- (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];
}
}
To nie zadziałało, więc czy ktoś ma jakieś pomysły?
Dzięki!
Jak na razie działa świetnie! Dziękuję za odpowiedź!! Udało mi się utworzyć przycisk niestandardowy, utworzyć metodę i zbudować tablicę z listą otwartych widoków. Jednak pojawia się błąd "nieprzechodni wyjątku", gdy przekraczam linię popToViewController ... Próbowałem nawet tego: [self.navigationController popToViewController: [vcs objectAtIndex: 1]]; bez skutku. Obecnie badam więcej o popToViewController. –
Skończyło się na użyciu: [self.navigationController popToViewController: [self.navigationController.viewControllers objectAtIndex: 0] animated: YES]; wrócić dwa poziomy .. działa świetnie, więc dziękuję! –
Jeśli chcesz wrócić do najwyższego poziomu, to popToRootViewControllerAnimated: powinno działać. –