在导航堆栈,我有6个视图控制器 像 A-> B-> C-> D-> E->˚F在导航卸下的ViewController堆栈
在视图控制器˚F,我想回到视图控制器B,我该怎么做?我想逐个删除视图控制器。提前致谢!
在导航堆栈,我有6个视图控制器 像 A-> B-> C-> D-> E->˚F在导航卸下的ViewController堆栈
在视图控制器˚F,我想回到视图控制器B,我该怎么做?我想逐个删除视图控制器。提前致谢!
你可以使用responder链来达到你的targetVC并弹出它上面的那个。
如果你想清除视图控制器中的数据,你需要有你自己的函数来手动重置你的VC。 –
试试:
[self.navigationController popToViewController:vcB animated:Yes];
如果你想直接弹出到B级的ViewController然后尝试以下。
for (UIViewController *VC in [self.navigationController viewControllers])
{
// here B is ViewCotroller Class Name
if ([VC isKindOfClass:[B class]])
{
[self.navigationController popToViewController:VC animated:TRUE];
break;
}
}
[self.navigationController viewControllers]
返回当前导航堆栈的ViewControllers数组。我使用For
(每个)循环来从数组中找出我们的视图控制器(它是B ViewController)。如果匹配,我们将对该ViewController执行Pop操作。
正确答案mahesh。 –
@balkaransingh是的,我和你也是。但让我们看看Agal Sivamanoj想要什么。 – Mahesh
@感谢Mahesh和balkaransingh,弹出后我想清除所有数据。例如,弹出后,我有一个图像在视图控制器上,我想清除弹出后, –
使用此:
for (UIViewController *controller in self.navigationController.viewControllers)
{
if ([controller isKindOfClass:[B class]])
{
[self.navigationController popToViewController:controller animated:YES];
break;
}
}
感谢您的意见Rin和Kirandeep库马尔,我已经试过这样的,它现在正
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES];
但我想删除所有数据视图控制器即objectAtindex:1 请分享如何做到这一点 谢谢
另一个答案是,为了移除viewcontroller我们能够使用通知还
[[NSNotificationCenter defaultCenter]postNotificationName:@"new" object:nil];
我已经发布了通知在FVC和BVC我注册和观察到的所述通知和该方法我移除的ViewController和清楚的是数据
[看看这个答案](HTTP:/ /stackoverflow.com/questions/3027559/can-i-pop-to-specific-viewcontroller) – Mahesh