UserInfoViewControllerという名前のUIViewControllerクラスがあります。表示されるとき、parentViewControolerは次のようなコードを使用します。
UserInfoViewController *rvc = [[UserInfoViewController alloc] initWithNibName:@"UserInfoViewController" bundle:nil];
rvc.user = user;
UINavigationController *nc = [[UINavigationController alloc] initWithRootViewController:rvc];
nc.navigationBarHidden = YES;
[self presentModalViewController:nc animated:YES];
[rvc release];
[nc release];
UserInfoViewControllerが別のViewControllerをプッシュまたは提示する場合があるため、スタックは次のようになります。
Root VC
|
A (push)
|
| - B (present)
|
|-- C (push)
|
|- D (push)
|
|- E (present)
B、EはUserInfoViewControllerのクラスです。
問題は、ビューコントローラEで、すべてのビューコントローラを閉じてルートVCに戻りたいのですが、一度に処理できないことです。
popToRootViewControllerAnimated、dismissModalViewControllerAnimated、setViewControllersを試しましたが、どれも機能しませんでした。
また、通知リスナーをBEに配置し、ルートVCを返す必要がある場合は、その通知を投稿するだけで、リスナーセレクターで次のようにします。
[self.navigationController popToRootViewControllerAnimated:NO];
[self.presentingViewController dismissModalViewControllerAnimated:NO];
その後、CD は閉じられますが、**BE**はまだそこにあります。
助言がありますか?