导航控制器推送无法正常工作 ios 11



你好,我有导航堆栈(Flow(,顶部可见视图控制器是M

  1. 我正在创建另一个带有视图控制器A的新导航控制器N
  2. 现在在M上呈现N
  3. A中推送视图控制器B(自我导航控制器(

推送不起作用,并且在现有过渡或演示发生时出现错误;导航堆栈不会仅在 iOS 11 中更新。 谢谢

您提到的内容不应造成问题。但下面提到的不会肯定地抛出你提到的内容。

将推送 B 添加到模式演示的完成块中的 N 个代码中

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

您没有正确遵循导航结构。

从视图控制器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。

Swift3/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)