1

我需要一次弹出 3 个控制器,所以我使用PopToViewController导航控制器中的方法,然后将一个新控制器推入其中。它导致视图重叠。两个控制器,它被弹出的和被推送的都是DialogViewControllers. 此外,这只发生在 iPod/iPhone 上,在 iPad 上它可以正常工作。

代码很简单:

NavigationController.PopToViewController(NavigationController.ViewControllers[NavigationController.ViewControllers.Count() - 1 - numberOfViews], animated);
NavigationController.PushViewController(viewController);

有什么帮助吗?

4

2 回答 2

1

而不是同时弹出和推送,您可能应该只替换堆栈

UIViewControllers[] newStack = new UIViewController[NavigationController.ViewControllers.Count()-numberOfViews+1];
for (int i = 0; i < NavigationController.ViewControllers.Count()-numberOfViews; i++)
{
    newStack[i] = NavigationController.ViewControllers[i];
}
newStack[NavigationController.ViewControllers.Count()-numberOfViews] = viewController;
NavigationController.SetViewControllers(newStack, true);
于 2012-12-13T09:29:32.363 回答
0

通过将 iPhone 的动画参数设置为 false 解决了该问题。

NavigationController.PopToViewController(NavigationController.ViewControllers[NavigationController.ViewControllers.Count() - 1 - numberOfViews], false);
于 2012-12-13T12:02:10.120 回答