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 に答える