다른 뷰에서 정보가져오기.

작성일

다른 뷰에서 정보가져오기.

이미 한번 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으로 받아오면 된다.