Di Swift saya memiliki ViewController1, ViewController2, ViewController3, ViewController4 dan ViewController5, sekarang dari ViewController1,

Saya pergi ke ViewController5 dengan menggunakan performSegue(withIdentifier: "segueIdentifier", sender: nil) seperti ini:

ViewController1 -> ViewController2 -> ViewController3 -> ViewController4 -> ViewController5

Sekarang saya menggunakan ViewController5 dan saya ingin mengabaikan ViewController2, saya menggunakan dismiss(animated: true) dan itu hanya membuat Anda mundur 1 langkah dari ViewController Anda saat ini, jadi saya menggunakan ViewController4.

Pertanyaannya adalah, bagaimana saya bisa kembali ke ViewController2 dari ViewController5?

Jadi ketika saya kembali ke ViewController2 dan menjalankan dismiss(animated: true) saya akan kembali ke ViewController1

0
Mark Dylan B Mercado 29 Maret 2020, 22:57

1 menjawab

Jawaban Terbaik
extension UINavigationController {

func popToViewController<Controller : UIViewController>(_ type: Controller.Type){
    guard let vc = viewControllers.compactMap({ $0 as? Controller }).first else { return }
    popToViewController(vc, animated: true)
  } 

}

navigationController?.popToViewController(ViewController.self)
0
manasshr 29 Maret 2020, 22:56