Использование Swift 4+, iOS 11.4+, Xcode 10 +
Я использую ContainerView с контроллером навигации для загрузки нескольких ViewController.
Кроме того, ViewController, который содержитContainerView также помещается в другой стек NavigationController.
См. Рисунок:
«Меню» - это корневой контроллер встек.Я помещаю другой ViewController (TopViewController) в тот же стек - пока все хорошо.
Моя проблема заключается в том, что я хочу "предварительно загрузить" TopViewController> ContainerView с другим ViewController (Item1) до становится видимым TopViewController.
В дополнение к Item1 есть другие ViewController, которые мне нужно будет "предварительно загрузить" таким образом.
У меня естьпопытался использовать «viewDidLoad» в TopViewController для нажатия Item1,
toVC = storyboard?.instantiateViewController(withIdentifier: "Item1") as! Item1
TopNav.pushViewController(toVC, animated: true)
, и это работает - но только после того, как TopViewController станет видимым.Это означает, что вы можете видеть Item1 «всплывающим» в виде, а не уже видимым.
Я также пробовал этот код из VC меню, но он ничего не выдвигает в ContainerView.
let toVC = self.storyboard?.instantiateViewController(withIdentifier: "TopViewController") as! TopViewController
// Tried this to 'pre-load' the next VC - shows no VC, and disables 'back' navigation
let toNav = toVC.navigationController
let nextVC = storyboard?.instantiateViewController(withIdentifier: "Item1") as! Item1
// Neither of the lines below loads the Item1 VC....
//toNav?.viewControllers = [nextVC]
toNav.pushViewController(toVC, animated: true)
Как я могу вставить Item1 в стек навигации для ContainerView до того, как VC с ContainerView станет видимым?
FYI: Вы можете скачать мой пример проекта здесь: https://gitlab.com/whoit/newviews