删除导航堆栈中的ViewController

时间:2016-11-08 09:48:33

标签: ios objective-c uinavigationcontroller navigation

在导航堆栈中,我有6个视图控制器 喜欢 A-> B-> C-> D-> E->˚F

在视图控制器 F ,我想返回视图控制器 B ,我该怎么办?我想逐个删除视图控制器。在此先感谢!

6 个答案:

答案 0 :(得分:2)

使用此:

for (UIViewController *controller in self.navigationController.viewControllers)
{
    if ([controller isKindOfClass:[B class]])
    {
        [self.navigationController popToViewController:controller animated:YES];
        break;
    }
}

答案 1 :(得分:1)

如果您想直接弹出B Class 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操作。

答案 2 :(得分:0)

您可以使用响应式链接到targetVC并弹出其上方的那些。

答案 3 :(得分:0)

感谢Rin和Kirandeep Kumar的评论,我试过这样,现在正在工作

@foreach ($history->where('status', 1) as $single)
     {{ $single->status }}
     {{ $single->id }}
@endforeach

但我想删除该视图控制器中的所有数据,即objectAtindex:1 请分享如何做到这一点 谢谢

答案 4 :(得分:0)

另一个答案是,为了删除视图控制器,我们也可以使用通知

[[NSNotificationCenter defaultCenter]postNotificationName:@"new" object:nil];

我已经在fVC和BVC中发布了通知我注册并观察了通知,该方法我删除了viewcontroller并清除了该数据

答案 5 :(得分:-2)

试一试:

[self.navigationController popToViewController:vcB animated:Yes];