スタック内の以前のビュー コントローラーを削除する必要があります。過去にこの方法を問題なく使用できました。
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 対応プロジェクトです。