Как уволить навигационный контроллер? - PullRequest
0 голосов
/ 21 апреля 2019

Я представляю навигационный контроллер (подробный вид) с showDetailViewController ().Я хочу отклонить это, когда кнопка нажата.Как я могу отклонить этот viewcontroller?

Код, который я пытался:

//detailviewcontroller
    @objc
    func cancel(_ sender: Any) {
        print("cancelPressed")
        //self.navigationController?.popViewController(animated: true)
        //self.navigationController?.dismiss(animated: true, completion: nil)
        //self.dismiss(animated: true, completion: nil)
        //splitViewController?.dismiss(animated: true, completion: nil)
        //splitViewController?.navigationController?.popToRootViewController(animated: true)
        //splitViewController?.navigationController?.popViewController(animated: true)
        //splitViewController?.navigationController?.dismiss(animated: true, completion: nil)
        //navigationController?.popViewController(animated: true)
        //navigationController?.dismiss(animated: true, completion: nil)
        //self.navigationController?.popToRootViewController(animated: true)
        //self.navigationController?.viewControllers.remove(at: 1)
        //self.navigationController?.viewControllers.remove(at: 0) - this one removes to blank view
        //self.presentingViewController?.dismiss(animated: true, completion: nil)
    }

Я пробовал несколько решений для стекопотока:

Отказ от контроллера представления навигации

Как отключить контроллер представления в навигационном контроллере, не отклоняя весь стек

ios swift - отклонить корневой контроллер представления навигационного контроллера

Невозможно отклонить View Controller, встроенный в Navigation Controller

Как отключить контроллер навигации, представленный от другого контроллера навигации в iOS 10и ниже?

Невозможно закрыть навигационный контроллер в Swift

Невозможно закрыть навигационный контроллер в Swift

Отключение контроллера вида не работает при использовании контроллера навигации

Отключение текущего контроллера навигации при нажатии на панели вкладок

Какотклонить определенный виКонтроллер ew

Как я представляю подробный контроллер просмотра:

//masterviewcontroller
// delegation for passing data between controllers
weak var passDelegate: PlaceSelectionDelegate?

func insertNewObject(_ sender: Any) {
    if let detailViewController = passDelegate as? DetailViewController {
        if let detailNavigationController = detailViewController.navigationController {
            detailViewController.delegate = self
            splitViewController?.showDetailViewController(detailNavigationController, sender: nil)
        }
    }
}

Ожидаемые результаты: отклонение подробного представления. Контроллер при нажатии кнопки.

Фактические результаты: без отклонения.

1 Ответ

0 голосов
/ 21 апреля 2019

Это должно работать, если вы просто хотите закрыть навигационный контроллер

navigationController?.dismiss(animated: true, completion: nil)
...