我正试图将数据从SecondViewController推送回FirstViewController。我试图使用RxSwift的PublishSubject类型来做这件事。当我移动到FirstViewController时,我只得到了关于我在控制台中推送的信息。我只是想在testArray对象中获取这些数据,这些数据将显示在UITableView中。我检查了一下,在UITableView中显示数据并没有错误,有什么想法吗?)
第一ViewController.swift
let disposeBag = DisposeBag()
@objc func addCryptoButtonPressed() {
DispatchQueue.main.async {
let viewController = SecondViewController()
viewController.subject
.subscribe(onNext: { [weak self] pushedData in
print(pushedData) // <----- it is working
self?.testArray.append(pushedData) // <----- it is not
}).disposed(by: self.disposeBag)
DispatchQueue.main.async {
self.mainTableView.reloadData()
}
self.navigationController?.pushViewController(viewController, animated: true)
}
}
SecondViewController.swift
let subject = PublishSubject<String>()
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
DispatchQueue.main.async {
let name = self.names[indexPath.row]
self.subject.onNext(name)
let viewController = FirstViewController()
self.navigationController?.pushViewController(viewController, animated: true)
}
}
我想明白了为什么它不工作.在SecondViewController的didSelectRowAt方法,我使用pushViewController移动到FirstViewController - 我删除了,然后我启用了通过后退按钮。navigationItem.setHidesBackButton(false, animated: true)
但现在我的问题是为什么我使用pushViewController的时候没有工作?