我有要求删除堆栈中的前一个视图控制器。我已经成功地使用在过去这种方法,没有任何问题:为什么我的UINavigationController在发布配置上崩溃?
NSMutableArray *vcs = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
BOOL removedFlag = YES;
while (removedFlag == YES)
{
removedFlag = NO;
for (UIViewController *vc in vcs)
{
if(![vc isKindOfClass:[self class]] && ![vc isKindOfClass:[MenuVC class]])
{
[vcs removeObject:vc];
removedFlag = YES;
break;
}
}
}
[self.navigationController setViewControllers:[NSArray arrayWithArray:vcs]];
现在我更新的应用程序,它神秘崩溃上发布配置,而不是调试。另外,在调试模式下不会有任何警告。我认为SDK发生了一些变化。它从来没有这样做过。
我提供的示例项目: http://dl.dropbox.com/u/7834263/RemoveTest.zip
这是启用了ARC-项目。
这工作,但为什么呢?两个数组都不能持有对象的引用吗? – TigerCoding
我用解释更新了我的答案。 –
=奇怪我从来没有遇到过这个问题。删除后(在我上面的代码中)检查vcs数组的内容时,它只显示两个视图控制器,因此它将删除它们。 – TigerCoding