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
стек, спасибо заранее.