Ios RxSwift:按钮单击从awakeFromNib到UIViewController的操作

Ios RxSwift:按钮单击从awakeFromNib到UIViewController的操作,ios,swift,rx-swift,Ios,Swift,Rx Swift,我是Rx-Swift初学者。我正在尝试获取ui按钮操作,该操作出现在UITableViewCell中 尝试: // UITableViewCell class TripInfoCell: UITableViewCell { @IBOutlet weak var btnMore: UIButton! var cellbag = DisposeBag() override func prepareForReuse() { super.prepareFor

我是
Rx-Swift
初学者。我正在尝试获取
ui按钮
操作,该操作出现在
UITableViewCell

尝试:

// UITableViewCell

class TripInfoCell: UITableViewCell {

    @IBOutlet weak var btnMore: UIButton!
    var cellbag = DisposeBag()

    override func prepareForReuse() {
        super.prepareForReuse()

        cellbag = DisposeBag()
    }

    override func awakeFromNib() {
        super.awakeFromNib()


        btnMore.rx.tap.asObservable()
           .subscribe { _ in

            print("Tapping_   ", self.tag)

        }.disposed(by: cellbag)

    }

}


// UIViewController
override func viewDidLoad() {
    super.viewDidLoad()

    Observable.of(visitsModel).bind(to: tblView.rx.items(cellIdentifier: "cell", cellType: TripInfoCell.self)) { (row, element, cell) in

       cell.tag = row

    }
    .disposed(by: disposeBag)
}
  • 我已经尝试了
    UITableViewCell的
    实例,我可以从
    UIViewController
    获得该实例。那很好
  • 需要:

    // UITableViewCell
    
    class TripInfoCell: UITableViewCell {
    
        @IBOutlet weak var btnMore: UIButton!
        var cellbag = DisposeBag()
    
        override func prepareForReuse() {
            super.prepareForReuse()
    
            cellbag = DisposeBag()
        }
    
        override func awakeFromNib() {
            super.awakeFromNib()
    
    
            btnMore.rx.tap.asObservable()
               .subscribe { _ in
    
                print("Tapping_   ", self.tag)
    
            }.disposed(by: cellbag)
    
        }
    
    }
    
    
    // UIViewController
    override func viewDidLoad() {
        super.viewDidLoad()
    
        Observable.of(visitsModel).bind(to: tblView.rx.items(cellIdentifier: "cell", cellType: TripInfoCell.self)) { (row, element, cell) in
    
           cell.tag = row
    
        }
        .disposed(by: disposeBag)
    }
    
    • 如何将单击的标记值从
      awakeFromNib()
      传输到
      UIViewController
    代码:

    // UITableViewCell
    
    class TripInfoCell: UITableViewCell {
    
        @IBOutlet weak var btnMore: UIButton!
        var cellbag = DisposeBag()
    
        override func prepareForReuse() {
            super.prepareForReuse()
    
            cellbag = DisposeBag()
        }
    
        override func awakeFromNib() {
            super.awakeFromNib()
    
    
            btnMore.rx.tap.asObservable()
               .subscribe { _ in
    
                print("Tapping_   ", self.tag)
    
            }.disposed(by: cellbag)
    
        }
    
    }
    
    
    // UIViewController
    override func viewDidLoad() {
        super.viewDidLoad()
    
        Observable.of(visitsModel).bind(to: tblView.rx.items(cellIdentifier: "cell", cellType: TripInfoCell.self)) { (row, element, cell) in
    
           cell.tag = row
    
        }
        .disposed(by: disposeBag)
    }
    
    尝试:

    // UITableViewCell
    
    class TripInfoCell: UITableViewCell {
    
        @IBOutlet weak var btnMore: UIButton!
        var cellbag = DisposeBag()
    
        override func prepareForReuse() {
            super.prepareForReuse()
    
            cellbag = DisposeBag()
        }
    
        override func awakeFromNib() {
            super.awakeFromNib()
    
    
            btnMore.rx.tap.asObservable()
               .subscribe { _ in
    
                print("Tapping_   ", self.tag)
    
            }.disposed(by: cellbag)
    
        }
    
    }
    
    
    // UIViewController
    override func viewDidLoad() {
        super.viewDidLoad()
    
        Observable.of(visitsModel).bind(to: tblView.rx.items(cellIdentifier: "cell", cellType: TripInfoCell.self)) { (row, element, cell) in
    
           cell.tag = row
    
        }
        .disposed(by: disposeBag)
    }
    
    这里,
    ui按钮
    我在
    ui视图控制器
    中使用的操作。这样我就可以传输数据了

    Observable.of(visitsModel).bind(to: tblView.rx.items(cellIdentifier: "cell", cellType: TripInfoCell.self)) { (row, element, cell) in
    
          cell.tag = row
    
          cell.btnMore.rx.tap.asObservable()
               .subscribe { _ in
    
               print("Inside_Tapping_   ", cell.tag)
    
          }.disposed(by: cell.cellbag)
    
    
    }
    

    看起来你的第二次尝试做了你想做的。如果没有,那么您到底想要什么?我需要从
    awakeFromNib()
    UIViewController
    的按钮操作
    awakeFromNib()
    中的按钮与您的
    项目中的按钮有何不同?我没有说两者都不同。我只想知道从
    awakeFromNib()
    UIViewController
    的数据传输。