iOS 8上popToViewController的行为发生变化?

iOS 8上popToViewController的行为发生变化?,ios,uikit,ios8,Ios,Uikit,Ios8,IOS 7 popToViewController及更早版本将弹出的控制器列表作为返回值返回。但在iOS 8 beta 5上,它返回零。这对我的应用程序不好。还有人知道这种行为的改变吗?在我看来这是一个bug,但是有人知道这里有故意的改变吗 NSArray *controllers = [self.navigationController **popToViewController:self** animated:NO]; 我也有同样的问题,我可以通过交换几行代码来解决它。我相信这是一个应该由

IOS 7 popToViewController及更早版本将弹出的控制器列表作为返回值返回。但在iOS 8 beta 5上,它返回零。这对我的应用程序不好。还有人知道这种行为的改变吗?在我看来这是一个bug,但是有人知道这里有故意的改变吗

NSArray *controllers = [self.navigationController **popToViewController:self** animated:NO];

我也有同样的问题,我可以通过交换几行代码来解决它。我相信这是一个应该由苹果修复的bug,但在修复之前,这个解决方案可能会帮助其他人

在我的例子中,这个错误只发生在从UIPopoverController中触发的操作调用popToViewController时。我的处理者是这样的:

- (void)didSelectBreadcrumbAtIndex:(NSInteger)index {

    [self.popController dismissPopoverAnimated:YES];
    self.popController = nil;

    [self popToViewController:[self.viewControllers objectAtIndex:index] animated:YES];
}
- (void)didSelectBreadcrumbAtIndex:(NSInteger)index {

    [self popToViewController:[self.viewControllers objectAtIndex:index] animated:YES];

    [self.popController dismissPopoverAnimated:YES];
    self.popController = nil;
}
解决方法是在调用popToViewController之后而不是之前关闭popover。处理程序现在如下所示:

- (void)didSelectBreadcrumbAtIndex:(NSInteger)index {

    [self.popController dismissPopoverAnimated:YES];
    self.popController = nil;

    [self popToViewController:[self.viewControllers objectAtIndex:index] animated:YES];
}
- (void)didSelectBreadcrumbAtIndex:(NSInteger)index {

    [self popToViewController:[self.viewControllers objectAtIndex:index] animated:YES];

    [self.popController dismissPopoverAnimated:YES];
    self.popController = nil;
}

需要明确的是,本例中的“self”是从UINavigationController派生的类。

即使在iOS8.0.2上,我也遇到了同样的问题。你们对此有什么解决办法吗?我提交了一个bug,但苹果希望我提供一个包含行为的应用程序。我还没有时间提供这个,因为剥离我的应用程序是一项巨大的工作。可能必须从创建一个新的测试应用程序开始,而不是剥离我的应用程序。是的,他们总是做同样的废话,希望我们做所有的工作。我已经制作了大量显示bug的测试应用程序,其中大部分都被完全忽略了,除了偶尔有一个问题问我在新的iOS版本中是否仍然存在bug。我想对于他们来说,使用他们最初要求的测试应用程序来检查这一点实在是太多的工作了。