圆形导航问题

时间:2013-10-19 11:07:05

标签: ios objective-c uinavigationcontroller navigation

我有一个视图控制器(A),它包含2个按钮,可以将视图推送到2个其他视图控制器(B和C)。视图控制器B可以将视图推送到视图控制器C,并且视图控制器C也可以将视图推送到视图控制器B.我具有圆形导航。所有视图控制器都有自己的导航控制器。我用ARC。 我怎么处理这个?感谢。

1 个答案:

答案 0 :(得分:2)

您应该只使用一个UINavigationController。使用该控制器,将A控制器设置为其根控制器。从该视图控制器,您可以通过调用C来推送具有相同导航控制器的“B”或[self.navigationController pushViewController:yourDesiredViewController animated:YES];控制器。但当你yourDesiredViewController并且你从这里推出另一个viewController时,你可能有来自同一个viewController并且你的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]; (B)或(C)

上执行此操作
yourDesiredViewController

如果它已经存在,则会弹出yourDesiredViewController或者它会推送B因为它不在您的堆栈中。在C和{{1}}控制器上执行此操作。