1

这就是我要做的设置UIBarButtonItem

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

但现在我需要做一些事情来调用那个闭包。如何?

4

3 回答 3

1

你可以这样做:

UIApplication.shared.sendAction(barButtonItem.action!, to: barButtonItem.target, from: self, for: nil)
于 2018-08-13T19:19:38.457 回答
1

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

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

tap订阅序列后将起作用。

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

于 2018-08-13T15:02:31.137 回答
1

试试这个,会很好用

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

谢谢

于 2018-08-13T11:08:07.157 回答