ios - 使用 RxSwift/RxCocoa 订阅 UINavigationController 后退按钮

标签 ios uiviewcontroller rx-swift rx-cocoa

我有一个简单的测试项目,其中有一个 UINavigationController 作为我的 rootViewController

我按下第一个 ViewController,它有一个 + 按钮作为右栏按钮项,我订阅它的点击以呈现一个新的 ViewController(与之前的相同一)。 推送转场按我预期的方式工作。

UIKit 为我管理后退按钮,我认为是 UINavigationController 在幕后创造了魔法。

现在,我需要做的是订阅后退按钮,但我找不到如何做到这一点。 我试过

  1. navigationController.navigationBar.backItem?.backBarButtonItem?.rx.tap

  2. navigationController.navigationItem.backBarButtonItem?.rx.tap 但它们似乎为零,因此可选链接会阻止订阅。

谢谢你的帮助,卢卡-

最佳答案

我认为您最好的选择是在 UINavigationController 上使用运算符。

navigationController.rx.willShow 将在 View Controller 即将显示时触发。您可以在它触发时进行最后一分钟的清理工作。

关于ios - 使用 RxSwift/RxCocoa 订阅 UINavigationController 后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44609844/

相关文章:

ios - 我如何调用其他类的函数? swift ,Xcode

ios - 与多个 Controller 的通信和空间分配

swift - Rx swift : What is the best practice to use DisposeBag?

swift - 快速传递 JSON 作为参数

ios - 我可以存储应用程序中的图像,以便点击后即可在照片库中打开吗?

ios - uipageviewcontroller 禁用向右滑动

ios - UIPageViewController 中的 UIScrollView 滚动了多少?

ios - 加载黑色背景的模态视图 Controller

ios - 传递数据时有条件的Segue?

mvvm - 无法使用Rx Swift和MVVM将节添加到 TableView