我有一个名为UserInfoViewController的 UIViewController 类,当它出现时, parentViewController 使用如下代码:
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 会推送或呈现另一个视图控制器,所以堆栈应该是这样的:
Root VC
|
A (push)
|
| - B (present)
|
|-- C (push)
|
|- D (push)
|
|- E (present)
B, E 是UserInfoViewController的类。
问题是,当在视图控制器 E 上时,我想关闭所有视图控制器并返回Root VC,但我无法立即处理它们。
我尝试了 popToRootViewControllerAnimated、dismissModalViewControllerAnimated、setViewControllers,但它们都不起作用。
我还在BE中放置了一个通知侦听器,当需要返回 Root VC 时,只需发布该通知,然后在侦听器选择器中执行以下操作:
[self.navigationController popToRootViewControllerAnimated:NO];
[self.presentingViewController dismissModalViewControllerAnimated:NO];
然后CD 关闭,但 ** BE ** 仍然存在。
有什么建议么?