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
的数据传输。