Отключить ViewController, открытый из SideMenu - PullRequest
0 голосов
/ 02 декабря 2018

У меня небольшое приложение с 5 экранами, встроенными в стек навигации, и я не могу отклонить UIViewController

Я использую SideMenu в своем проекте, чтобы представить последние UIViewController из этого, вот код конфигурации бокового меню:

SideMenuManager.default.menuPushStyle = .replace
SideMenuManager.default.menuPresentMode = .menuSlideIn

И способ, которым я представляю VC:

 override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "menuToSavedQuotes" {
        _ = segue.destination as? SavedQuotesViewController
    }
}

А затем: self.performSegue(withIdentifier: "menuToSavedQuotes", sender: self)

Работает просто отлично, но потом, когда я призываю к действию для увольнения - это не работаетЯ не использую навигационную панель в своем приложении, поэтому я создал кнопку и попытался закрыть ее, но не смог.

Я попробовал:

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

Но ничего из этого не сработало.То, что у меня сейчас и до сих пор не работает:

override func viewDidLoad() {
    super.viewDidLoad()
    output?.viewIsReady()
    setupNavigationStack()
}

@IBAction func didPressClose(_ sender: UIButton) {
    print("Here")
    self.navigationController?.popViewController(animated: true)
    //self.dismiss(animated: true, completion: nil)
}

func setupNavigationStack() {
    if let root = UIApplication.shared.keyWindow?.rootViewController as? StartingPageViewController {
        let navigation = root.childViewControllers[0] as! UINavigationController

        let vc1 = self.storyboard!.instantiateViewController(withIdentifier: "StartingPage")
        let vc2 = self.storyboard!.instantiateViewController(withIdentifier: "StartTrial")
        let vc3 = self.storyboard!.instantiateViewController(withIdentifier: "ScheduleNotifications")
        let vc4 = self.storyboard!.instantiateViewController(withIdentifier: "AllQuotes")
        let vc5 = self.storyboard!.instantiateViewController(withIdentifier: "SavedQuotes")

        navigation.setViewControllers([vc1, vc2, vc3, vc4, vc5], animated: true)
    }
}

В качестве временного решения моя кнопка закрытия просто открывает предыдущий UIViewController, но это не очень хорошая практика.

Буду благодарен за любую помощь!

Спасибо!

1 Ответ

0 голосов
/ 10 декабря 2018

После поиска в течение некоторого времени я все еще не мог найти источник своей проблемы, поэтому я остался с обходным путем:

Кнопка закрытия просто открывает предыдущий UIViewController, но это не очень хорошая практика.

В моем случае приложение имеет только 3 экрана, и это нормально, но если говорить о больших приложениях, такое решение не рекомендуется.

...