IOS 7 popToViewController和更早版本,返回弹出的控制器列表作为返回值。但是在iOS 8 beta 5上,它返回nil。这不适合我的应用。其他人都知道这种行为的变化吗?对我来说看起来像个错误,但有人知道这里有意改变吗?
NSArray *controllers = [self.navigationController **popToViewController:self** animated:NO];
答案 0 :(得分:0)
我遇到了同样的问题,我可以通过交换几行代码来解决这个问题。我认为这是一个应该由Apple修复的错误,但也许这种解决方法可以帮助其他人解决,直到它被修复。
在我的情况下,只有在UIPopoverController中触发的动作中调用popToViewController时才会出现错误。我的处理程序看起来像这样:
- (void)didSelectBreadcrumbAtIndex:(NSInteger)index {
[self.popController dismissPopoverAnimated:YES];
self.popController = nil;
[self popToViewController:[self.viewControllers objectAtIndex:index] animated:YES];
}
解决方法是在调用popToViewController而不是之前调用popover。处理程序现在看起来像这样:
- (void)didSelectBreadcrumbAtIndex:(NSInteger)index {
[self popToViewController:[self.viewControllers objectAtIndex:index] animated:YES];
[self.popController dismissPopoverAnimated:YES];
self.popController = nil;
}
要清楚,在这种情况下,“self”是一个派生自UINavigationController的类。