スタックが必要ない場合は、デフォルトのセグエでデフォルトの UINavigationController を使用することはできません。宛先の背後にあるすべてのビューを解放する場合は、宛先が画面に表示されるときにスタックから削除する必要があります。
私の答えは、すべてをナビゲーション コントローラーに入れ、バーを非表示 ( ) に設定し、次のようにメソッドself.navigationController.navigationBarHidden = YES;
をオーバーライドするカスタム セグエを作成することです。perform
- (void) perform {
UIViewController* destination = self.destinationViewController;
NSArray* newStack = [NSArray arrayWithObject:destination];
UIViewController* source = self.sourceViewController;
[source.navigationController setViewControllers: newStack animated: YES];
}
次に、すべてを通常どおり接続し、セグエをカスタム クラスにします。そうすれば、セグエするたびに、新しく表示されたコントローラー以外のすべてがスタックからクリアされます。
編集:私がこれを書いている間に、そのスタックを使用したかったことを明確にするために編集したと思います。しかたがない。その場合は、バーを非表示に設定して、通常どおり使用してください。