如何使用RxSwift强制点击UIBarButtonItem?

时间:2018-08-13 10:30:19

标签: ios swift rx-swift

这是我设置UIBarButtonItem的步骤:

mainView.userBarButtonItem.rx.tap.bind { _ in
    self.router.presentUserController(from: self)
}.disposed(by: bag)

但是现在我需要做一些事情来称呼这种关闭。怎么样?

3 个答案:

答案 0 :(得分:1)

您可以执行以下操作来模拟点击:

if let target = mainView.userBarButtonItem.target, let action = mainView.userBarButtonItem.action {
  _ = target.perform(action, with: mainView.userBarButtonItem)
}

订阅了tap序列后将可以正常工作。

但是,我真的不明白为什么您需要这样做。我希望这不是用于单元测试...

答案 1 :(得分:0)

尝试一下,可以正常工作

    mainView.userBarButtonItem.rx.tap.subscribe(onNext: { [unowned self] in
        self.router.presentUserController(from: self)
    }).disposed(by: disposeBag)

谢谢

答案 2 :(得分:0)

您可以这样做:

UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: self, for: nil)