【发布时间】:2012-01-18 19:48:36
【问题描述】:
我需要一些关于导航控制器问题的帮助。
我有一个navigationController,推送了 4 个ViewControllers。我推送的最后一个 vc 以模态方式进一步展示了ViewController。模态ViewController 表示ActionSheet。根据用户的回答,我要么只关闭模式ViewController,要么我想回到根ViewController。
在模态呈现的ViewController 中,我有:
- (void) dismissGameReport
{
[[self delegate] GameReportModalWillBeDismissed:modalToPopToRoot];
}
在最后一个ViewController 被推入navigationController 堆栈中,我有:
- (void)GameReportModalWillBeDismissed: (BOOL)popToRoot;
{
if (popToRoot)
{
[self.navigationController popToRootViewControllerAnimated:NO];
}
else
{
[self dismissModalViewControllerAnimated:YES];
}
}
关闭模态视图控制器可以正常工作。 不过,
[self.navigationController popToRootViewControllerAnimated:NO];
不会导致根ViewController 显示其视图。添加一些日志信息,我看到在self.navigationController 的消息之后,堆栈被正确弹出,但继续按顺序执行。屏幕仍然显示模态 ViewController 的视图。
作为一种解决方法,我尝试始终关闭模态视图控制器,并在 ViewWillAppear 方法中有 popToRootAnimated 消息。没有不同。仍然会弹出控制器堆栈,但屏幕继续显示我的模态视图控制器的视图,并且继续按顺序执行。
有人可以帮帮我吗?
【问题讨论】:
-
您是否尝试使用编译器进入 if 循环的断点进行调试?
标签: objective-c ios4 uinavigationcontroller