다른 뷰에서 정보가져오기.
작성일
다른 뷰에서 정보가져오기.
이미 한번 API를 통해 정보를 받아왔는데, 다른뷰에서 그정보를 사용하려면 또 API를 사용해야한다.
이건 정말 불필요한 네트워크 통신이다. 이전화면에서 정보를 넘기는 방법을 알아보려고한다.
버튼을 누르면서 새로운 화면으로 띄우는 코드
@objc func actionButtonTapped() {
guard let user = user else { return }
let controller = UploadTweetController(user: user)
let nav = UINavigationController(rootViewController: controller)
nav.modalPresentationStyle = .fullScreen
present(nav, animated: true, completion: nil)
}
위코드를 보면 가지고있던 user정보를 언래핑해준후,
controller가 init될때 같이 넣어준후, 새로운 뷰를 띄여준다. 이러한 코드를 만드려면,
받을 뷰에서
// MainView에서 넘어온 user를 담을 변수
private let user: User
// user정보를 담아올 변수
init(user: User) {
self.user = user
super.init(nibName: nil, bundle: nil)
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
받아올 user변수를 만들고, init으로 받아오면 된다.