ルートビューといくつかの子ビューがあります。ビューごとに、ビューをめくって情報画面を表示する情報ボタンがあります。私の問題は、戻るボタンを使用して戻ると、元の画面に戻らないことです。つまり、ルートビューに戻ります。通常のプッシュの代わりにフリップを追加するすべての作業を完了する前は、問題ありませんでした。
階層の3ページにあるviewController(これをdetailViewControllerと呼びます)では、次のようになります。
- (void)infoAction {
infoViewController *controller = [[[infoViewController alloc] init] autorelease];
[self.navigationController pushViewController:controller animated:NO];
}
そのinfoViewControllerで:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
}
-(void) viewWillDisappear: (BOOL) animated{
[super viewWillDisappear:animated];
[self.navigationController popViewControllerAnimated:YES];
[UIView beginAnimations:@"animation" context:nil];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];
[UIView commitAnimations];
}
「detailViewController」に戻るわけではありません。最初のオープニング画面ビューに戻ります。
ちなみに、情報画面のナビゲーションバーでは、戻るボタンをタップしても表示された場所に移動しませんが、戻るボタンにはルートビューのタイトルではなくdetailViewControllerのタイトルが適切にラベル付けされています。助けてください...ありがとう!