最近遇到这样一个问题,有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];
}
本文介绍了如何在iOS开发中,实现从C视图控制器直接返回到A视图控制器,而跳过中间的B视图控制器的方法。通过使用presentModalViewControllerAnimated和dismissModalViewControllerAnimated方法,可以实现在导航栈中直接跳转和返回的操作,避免了传统的层层弹出和返回导致的问题。

6295

被折叠的 条评论
为什么被折叠?



