我有一个视图控制器(A),其中包含2个将视图推到其他2个视图控制器(B和C)的按钮。视图控制器B可以将视图推到视图控制器C,视图控制器C也可以将视图推到视图控制器B。我有一个圆形导航。所有视图控制器都有自己的导航控制器。我使用ARC。
我该如何处理?谢谢。
最佳答案
您只能使用一个UINavigationController
。使用该控制器,您可以将A
控制器设置为其根控制器。从该视图控制器,您可以通过调用C
将“ B”或[self.navigationController pushViewController:yourDesiredViewController animated:YES];
控制器推入相同的导航控制器。但是,当您是那个yourDesiredViewController
并从此处推送另一个viewController
时,可能有可能您来自同一个viewController
,并且您的viewControllers
堆栈中将有相同的navigationController
。因此,为避免这种情况,您可以在secondViewController
(B)或(C)上执行此操作
//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
,因为它不在您的堆栈中。在您的和控制器上执行此操作。