我有一个视图控制器(A),其中包含 2 个按钮,可将视图推送到其他 2 个视图控制器(B 和 C)。视图控制器 B 可以将视图推送到视图控制器 C,视图控制器 C 也可以将视图推送到视图控制器 B。我有一个循环导航。所有视图控制器都有自己的导航控制器。我使用 ARC。我该如何处理?谢谢。
问问题
332 次
1 回答
2
您应该只使用一个UINavigationController
. 使用该控制器,您将A
控制器设置为其根控制器。从该视图控制器中,您可以C
通过调用来推送具有相同导航控制器的“B”或控制器[self.navigationController pushViewController:yourDesiredViewController animated:YES];
。但是当你是那个yourDesiredViewController
并且你从这里推另一个viewController
时,你可能来自同一个,并且你的堆栈中viewController
会有相同的。所以为了避免这种情况,您可以在(B) 或 (C)上执行此操作viewControllers
navigationController
secondViewController
//If the user has chosen to add new user then the viewcontroller will be popped....
for (UIViewController *aVC in self.navigationController.viewControllers)
{
if ([aVC isKindOfClass:[DesiredViewController class]])
{
[self.navigationController popToViewController:aVC animated:YES];
return;
}
}
[self.navigationController pushViewController:yourDesiredViewController animated:YES];
yourDesiredViewController
如果它已经存在,它会弹出你,或者它会推送yourDesiredViewController
,因为它不在你的堆栈中。在您B
和C
控制器上执行此操作。
于 2013-10-19T15:35:02.860 回答