ios - pushViewController 无法快速在 xib 中工作

标签 ios swift uinavigationcontroller

我正在使用 xibs 和 swift,有没有一种方法可以使用 pushViewController 转到另一个 View 并以编程方式返回?

错误: fatal error :在展开可选值时意外发现 nil

我尝试过的事情:

  1. 设置为 Root View 不允许返回

2.

let rvc: LoginViewController = LoginViewController()
self.navigationController!.pushViewController(rvc, animated: true)

如果我从 navigationController! 更改为 navigationController? 没有任何反应

最佳答案

仅当 View Controller 位于导航 Controller 的导航堆栈中时, View Controller 的 navigationController 属性 (self.navigationController) 才会返回有效的导航 Controller 对象。

您可以尝试像这张图片中那样嵌入一个导航 Controller :

enter image description here

或者以编程方式创建它:

let navigationController = UINavigationController(rootViewController: self)

之后,您可以推送一个 viewController。

评论后更新: 关于你的错误:

It ran into error adding a root view controller <collegeSystem.FirstViewController: 0x7c280330> as a child of view controller:<UINavigationController: 0x7c91bc00>

您似乎在尝试这样做:

self.window.addSubview(navigationController.view)

代替:

self.window.rootViewController = navigationController

关于ios - pushViewController 无法快速在 xib 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38369411/

相关文章:

ios - 使用 arc4Random 设置 Sprite 垂直位置的限制

ios - 如何在所有 Controller 中显示 subview ?像导航栏

ios - 从通知对象传递数组会导致 iOS 10 中的应用程序崩溃

ios - 为 WKWebView 设置约束时崩溃

ios - 带标题的 UITabBarController header

ios - EXC_BAD_INSTRUCTION 将 UICollectionView 单元格数据传递给不同的 ViewController 时

ios - 在 Swift 中关闭和显示 View Controller

ios - 无法覆盖 Swift 中的委托(delegate)属性

objective-c - 当我更改 UIView 时,我的 NavigationBar 没有

ios - 如何在导航 Controller 工具栏的栏按钮项上添加标题和图像