1. ホーム
  2. iphone

[解決済み] ナビゲーションスタックからビューコントローラーを削除する

2023-01-04 17:27:36

質問

私は5つのUIViewControllerを持つナビゲーションスタックを持っています。私は5番目のビューコントローラのボタンをクリックすると、スタック内の3番目と4番目のビューコントローラを削除したい。これを行うことは可能ですか?もしそうなら、どのように?

どのように解決するのですか?

このコードを使用して、お楽しみください。

NSMutableArray *navigationArray = [[NSMutableArray alloc] initWithArray: self.navigationController.viewControllers];

// [navigationArray removeAllObjects];    // This is just for remove all view controller from navigation stack.
[navigationArray removeObjectAtIndex: 2];  // You can pass your index here
self.navigationController.viewControllers = navigationArray;
[navigationArray release];

これがあなたの助けになることを願っています。

編集:Swiftコード

guard let navigationController = self.navigationController else { return }
var navigationArray = navigationController.viewControllers // To get all UIViewController stack as Array
navigationArray.remove(at: navigationArray.count - 2) // To remove previous UIViewController
self.navigationController?.viewControllers = navigationArray

編集:最後のViewController以外を削除する -> 左上のBack Buttonを削除する

guard let navigationController = self.navigationController else { return }
var navigationArray = navigationController.viewControllers // To get all UIViewController stack as Array
let temp = navigationArray.last
navigationArray.removeAll()
navigationArray.append(temp!) //To remove all previous UIViewController except the last one
self.navigationController?.viewControllers = navigationArray