最近遇到这样一个问题,有A B C三个viewcontroller,A跳转到B,B跳转到C,返回的时候希望直接从C跳回A,关闭B;
解决思路:
在这里我们不能使用push/pop,popViewControllerAnimated是逐个一层层后退的,如果在跳转到C的时候用popToRootViewControllerAnimated这个将A置顶,则从C后退的时候会报错;
所以,可以使用使用presentModalViewControllerAnimated方法从A->B->C,
1) 从C后退的时候,返回方法这样写
(void)dismissController {
[self dismissModalViewControllerAnimated:NO];//这里一定要用NO
[[NSNotificationCenter defaultCenter]postNotificationName:@"dismissdismiss" object:nil];
}
2)返回到B时,在B的 viewdidload 方法中添加下面代码 :
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dismissController) name:@"dismissdismiss" object:nil];
}
- (void)dismissController {//调用这个方法关闭B,显示A
[self dismissModalViewControllerAnimated:YES];
}