我需要删除堆栈中的前一个视图控制器。我过去成功使用过这种方法,没有任何问题:
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 的项目。