3つのビューコントローラーを備えたアプリがあります。プッシュセグエを使ってA-> B-> Cからプッシュします。BがCにプッシュした後、スタックからBを削除して、Aの上にCの2つのビューだけを残すにはどうすればよいですか?
UINavigationController
ナビゲーションスタックを管理するために維持するViewControllerの配列があります。
小さいインデックスのオブジェクトは、スタックの下位にあり、高いインデックスのオブジェクトよりも低くなっています。最高のインデックスにあるオブジェクトはナビゲーションスタックの一番上にあり、インデックス0にあるオブジェクトがルートビューコントローラです。
この配列にアクセスして、viewControllers
プロパティを表示できます。いずれについてもUIViewController
、ナビゲーションコントローラでは、単に:
self.navigationController.viewControllers
これを使用して、現在の状態のアレイを取得し、必要に応じて操作してから、リセットすることができます。
例えば:
NSArray *oldNavigationStack = self.navigationController.viewControllers;
NSArray *newNavigationStack = @[[oldNavigationStack firstObject],
[oldNavigationStack lastObject]];
self.navigationController.viewControllers = newNavigationStack;
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加