RxSwift不会将数据从一个ViewController推送回另一个ViewController。

问题描述 投票:0回答:1

我正试图将数据从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)
    }
}
ios uitableview uiviewcontroller rx-swift
1个回答
0
投票

我想明白了为什么它不工作.在SecondViewController的didSelectRowAt方法,我使用pushViewController移动到FirstViewController - 我删除了,然后我启用了通过后退按钮。navigationItem.setHidesBackButton(false, animated: true)

但现在我的问题是为什么我使用pushViewController的时候没有工作?

© www.soinside.com 2019 - 2024. All rights reserved.