NavigationController Push не работает ios 11 - PullRequest
0 голосов
/ 23 мая 2018

Здравствуйте, у меня есть стек навигации (Flow) и видимый сверху контроллер M

  1. Я создаю еще один новый контроллер навигации N с видомконтроллер A .
  2. Сейчас представляет N вкл M
  3. Контроллер выдвигающегося вида B in A (self.navigationcontroller)

Push не работает и выдает ошибку во время существующего перехода или презентации;стек навигации не будет обновляться только в iOS 11.Спасибо,

Ответы [ 3 ]

0 голосов
/ 23 мая 2018

Вы неправильно выполняете навигационную структуру.

Из контроллера вида M вам необходимо представить контроллер навигации N следующим образом:

self.navigationController?.present(navN, animated: true, completion: nil)

Здесь self - контроллер вида M , а navN - новый контроллер навигации.

После этого он откроет контроллер вида A, отсюда вам нужно нажать для просмотраКонтроллер B:

self.navigationController?.pushViewController(VCb, animated: true)

Self - контроллер вида A и VCb - новый контроллер вида B.

0 голосов
/ 21 сентября 2018

Swift 3 / Swift 4

Прежде всего вам нужно установить контроллер навигации, на котором вы хотите представить. После этого выполните процесс навигации на вашем втором контроллере представления.

  • Пример, подобный этому

       let firstPresentVC = FirstVC(nibName:"FirstVC",bundle:nil)
       let navVC = UINavigationController(rootViewController:firstPresentVC)
       navVC.isNavigationBarHidden = true
       self.present(navVC, animated: true, completion:nil)
    

Теперь вы находитесь в текущем стеке с навигацией

Вы можете нажать после этого

let secondPushVC = secondPushVC(nibName:"secondPushVC",bundle:nil)
self.navigationController?.pushViewController(secondPushVC, animated: true)
0 голосов
/ 23 мая 2018

То, что вы упомянули, не должно создавать проблемы.Но нижеупомянутое не будет точно отбрасывать то, что вы упомянули.

Добавьте push B в N-код в блоке завершения модальной презентации

present(N, animated: true) { [weak self]
    N.pushViewController(B, animated: true)
}
...