这就是我要做的设置UIBarButtonItem:
mainView.userBarButtonItem.rx.tap.bind { _ in
self.router.presentUserController(from: self)
}.disposed(by: bag)
但现在我需要做一些事情来调用那个闭包。如何?
你可以这样做:
UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: self, for: nil)
您可以通过执行以下操作来模拟点击:
if let target = mainView.userBarButtonItem.target, let action = mainView.userBarButtonItem.action {
_ = target.perform(action, with: mainView.userBarButtonItem)
}
tap订阅序列后将起作用。
但是,我真的不明白你为什么需要这样做。我希望这不是用于单元测试...
试试这个,会很好用
mainView.userBarButtonItem.rx.tap.subscribe(onNext: { [unowned self] in
self.router.presentUserController(from: self)
}).disposed(by: disposeBag)
谢谢