Стек UINavigationController не возвращает текущий контроллер в первый раз - PullRequest
0 голосов
/ 21 мая 2019

UINavigationController не возвращает последний viewController при первом запуске, всегда возвращает первый контроллер.

let viewControllers: [UIViewController]=self.navigationController!.viewControllers as [UIViewController]

    var i = 0
    var boolDidPop = false
    for viewController in viewControllers {
        if String(describing: type(of: viewController)) == strTargetControllerClass {
            NavigationController.checkCorrectNamespace(viewController)
            self.navigationController?.popToViewController(viewController, animated: true)
            boolDidPop = true
        }
        i = i + 1
    }
    if !boolDidPop {
        let targetViewController = storyboardViewControllerFromString(strTargetControllerClass)!
        NavigationController.checkCorrectNamespace(targetViewController)
        self.navigationController!.pushViewController(targetViewController, animated: true)
    }

Я использую этот код для добавления или извлечения viewController всякий раз, когда это необходимо, здесь контроллеры успешно добавляются в стек навигации, я хочу добавить интерфейс камеры в ожидаемый viewController, чтобы при достижении этого контроллера я вызывал navigationController.viewControllers.last, но эта функция всегда возвращает firstViewController, что является homeViewController для моего приложения.

Пожалуйста, помогите мне получить lastViewController в первый раз, используя UINavigationController стек, спасибо заранее.

...