본문 바로가기

Mobile/iOS

[iOS] RxSwift를 이용해서 이전 화면으로 데이터 전달

반응형


이번 글에서는 RxSwift, NavigationController를 사용해서 데이터를 이전 화면으로 보내는 방법에 대해 설명합니다.

1.  데이터를 보낼 ViewController를 설정해줍니다.

// SecondViewController Setting


class SecondViewController: UIViewController {
	var sendString = PublishSubject<String>()
}

extension SecondViewController {
	@objc func goToFirstViewController(_ sender: UIButton) {
    	self.navigationController?.popViewController(animated: true)
    	sendString.onNext("이 글자를 보냅니다.")
    }
}

2. 데이터를 받을 viewController를 설정해줍니다.

// FirstViewController Setting

extension FirstViewController {
    @objc func goToSecondViewController(_ sender: UIButton) {
        let viewCtrl = SecondViewController()
        viewCtrl.sendString.asObserver().subscribe { string in
            print(string)
        }
        self.navigationController?.pushViewController(vc, animated: true)
    }
}

이렇게 해주면 SecondViewController에서 goToFirstViewController 버튼을 누르게 되면 "이 글자를 보냅니다." 가 출력됩니다. 다른 것들도 같은 방식으로 보내주면 알아서 적용됩니다.

반응형