如何在IOS中弹出堆栈?
我正在构建一个iOS应用程序 我正在做的事情解释如下-如何在IOS中弹出堆栈?,ios,objective-c,uinavigationcontroller,viewcontroller,Ios,Objective C,Uinavigationcontroller,Viewcontroller,我正在构建一个iOS应用程序 我正在做的事情解释如下- 有3个名为A、B、C的视图控制器 我在按钮点击功能上转到A到B,然后转到C 我必须在所有三个ViewController(A、B、C)上实现导航控制器 现在,当我按下导航控制器的后退键时,后面的堆栈是C->B->A。这是默认行为 我需要的是堆栈操作应该像-C->A那样执行 为此,我必须从堆栈中弹出B。如何从堆栈中弹出B。如果您希望始终返回堆栈上的第一个视图控制器,则可以使用 [self.navigationController popToR
为此,我必须从堆栈中弹出B。如何从堆栈中弹出B。如果您希望始终返回堆栈上的第一个视图控制器,则可以使用
[self.navigationController popToRootViewControllerAnimated:YES];
如果要弹出视图控制器的数量
X
,请检查SO的回答:如果要始终返回堆栈上的第一个视图控制器,可以使用
[self.navigationController popToRootViewControllerAnimated:YES];
如果要弹出视图控制器的数量
X
,请检查SO的回答:使用下面的代码执行此操作
NSArray *viewContrlls=[[self navigationController] viewControllers];
for( int i=0;i<[ viewContrlls count];i++){
id obj=[viewContrlls objectAtIndex:i];
if([obj isKindOfClass:[A class]]){
// A is your class where to popback
[[self navigationController] popToViewController:obj animated:YES];
return;
}
}
NSArray*viewcontlls=[[self-navigationController]viewControllers];
对于(int i=0;i使用下面的代码执行此操作
NSArray *viewContrlls=[[self navigationController] viewControllers];
for( int i=0;i<[ viewContrlls count];i++){
id obj=[viewContrlls objectAtIndex:i];
if([obj isKindOfClass:[A class]]){
// A is your class where to popback
[[self navigationController] popToViewController:obj animated:YES];
return;
}
}
NSArray*viewcontlls=[[self-navigationController]viewControllers];
对于(int i=0;iYou可以使用函数-(NSArray*)popToRootViewControllerAnimated:(BOOL)animated
@hiteshmatnani[self.navigationController popToRootViewControllerAnimated:YES]只需写这一行即可。这将对您有所帮助。可能的副本可以使用“展开”segue来弹出多个视图的背面。请参阅答案您可以使用函数-(NSArray*)PoptorootViewController动画:(BOOL)动画
@hiteshmatnani[self.navigationController PoptorootViewController动画:是的]只要写这行就行了。这会对你有帮助。可能重复的你可以使用unwind segue弹出多个视图的背面。查看答案