как закрыть все контроллеры представления, которые представлены модально друг перед другом, с быстрым переходом?

поэтому у меня есть контроллер основного представления, который контроллеры представления будут представлять друг перед другом, и я хочу, когда пользователь нажимает кнопку в последнем контроллере представления, закрывает все представленные контроллеры модального представления, поэтому я использовал этот код. Но я не получил результат

let destination = matchViewController()
let appDelegate:UIApplicationDelegate = UIApplication.shared.delegate!
let initialViewController = destination
let navigationController = UINavigationController(rootViewController: initialViewController)
appDelegate.window??.rootViewController = navigationController
appDelegate.window??.makeKeyAndVisible()

Я хочу использовать unwind segue для выхода. Но есть еще одна проблема, которую последний контроллер представления будет представлять много раз в разных ситуациях, поэтому я просто отклоняю все представленные контроллеры модального представления. В этой ситуации я предпочел бы не использовать навигационный контроллер. Но если бы я имел чтобы использовать его, пожалуйста, скажите мне, где именно я должен это использовать?


person Saeed Rahmatolahi    schedule 30.12.2018    source источник


Ответы (1)


Два варианта:

  1. Отключить все контроллеры представления на корневом контроллере представления

    self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
    
  2. Закройте все viewControllers, пока не появится presentingController

    func dismissAllControllers() {
    
        guard let vc = self.presentingViewController else { return }
    
        while (vc.presentingViewController != nil) {
            vc.dismiss(animated: true, completion: nil)
        }
    }
    
person Bappaditya    schedule 30.12.2018
comment
Отклонить все viewControllers, пока у него не появится PresentingController, как это работает? - person Saeed Rahmatolahi; 30.12.2018
comment
Вам нужно вызвать это при последнем действии кнопки контроллера просмотра - person Bappaditya; 30.12.2018
comment
хорошо, есть проблема, есть некоторые контроллеры представления на главной странице, и до этого, и я не хочу их отклонять, я просто хочу отклонить контроллеры представления, пока не отобразится mainViewController - person Saeed Rahmatolahi; 30.12.2018
comment
вы можете добавить проверку mainViewController в цикле while - person Bappaditya; 30.12.2018
comment
Я не могу этого сделать, Xcode не позволит мне это сделать. - person Saeed Rahmatolahi; 30.12.2018