我有一个非常简单的情况:我有三个UIViewControllers,A,B,C A打开B,B打开C.现在,从控制器C开始,应用程序应该转到控制器A,而不是B.实现此目的的正确方法是什么?
1)在控制器C上制作自定义后退按钮,使其“back
”方法并在其中弹出控制器A?
2)通过从导航控制器获得的控制器阵列并删除控制器B?在控制器C的viewDidLoad
中执行此操作?
3)浏览从导航控制器获得的控制器阵列,并在控制器B的viewWillDisappear
中删除控制器B和o?
答案 0 :(得分:0)
如果要将所有viewcontroller弹出到根视图控制器,可以使用popToRootViewControllerAnimated
[navigationController popToRootViewControllerAnimated:NO];
根据您的需要将动画设置为YES / NO,无论您是否想要动画。
您可以将此代码置于后退按钮上。
答案 1 :(得分:0)
在控制器C上创建一个自定义后退按钮,并将其后面的事件写为:
-(IBAction)backButtonAction:(id)sender
{
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:0] animated:YES];
}
查看您的视图层次结构我确信它会弹出到控制器A。
答案 2 :(得分:0)
试试这个:
在后退按钮选择器方法上,弹出到导航控制器的根视图控制器。
-(void)backBtnAction:(id)sender
{
[self.navigationController popToRootViewControllerAnimated:YES];
}