gpt4 book ai didi

ios - removeFromParentViewController 从堆栈中移除所有 View Controller

转载 作者:行者123 更新时间:2023-11-29 03:21:12 25 4
gpt4 key购买 nike

在我的应用程序中,我想从 View Controller 堆栈中删除 View Controller ,然后导航到特定的 View Controller 。假设我有 A、B、C、D、E View Controller 堆栈。我想删除E然后转到C。我使用以下代码

NSMutableArray *allViewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];


for (UIViewController *aViewController in allViewControllers)
{
if ([aViewController isKindOfClass:[noNetworkViewController class]])
{
[aViewController removeFromParentViewController];
}
}


NSMutableArray *allbViewControllers = [NSMutableArray arrayWithArray:[self.navigationController viewControllers]];

for (UIViewController *aViewController in allbViewControllers)
{
if ([aViewController isKindOfClass:[messageViewController class]])
{
[self.navigationController popToViewController:aViewController animated:NO];
}
}

第一个 for 循环从堆栈中删除所有 View Controller 。我在这里做错了什么吗?请告诉我。

最佳答案

您不应该使用 removeFromParentViewController: 来处理导航 Controller 的 View Controller 堆栈。曾经。这是完全错误的。

此外,没有理由遍历导航 Controller 的 View Controller 堆栈并将它们一个接一个地弹出。有 popToViewController:animated: 和 popToRootViewController 等方法,可让您通过一次调用弹出堆栈中的任意 View Controller 。

关于ios - removeFromParentViewController 从堆栈中移除所有 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21069661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com