티스토리 뷰

iOS

다른 뷰 Controller와 데이터 주고받기

성현아빠 2019. 4. 4. 10:17

A Controller -> B Controller로 데이터 전달

 

1. 프레젠테이션 방식으로 화면 전환하면서 값을 전달

    - Button의 Action에 코드 추가

 

        guard let vc = self.storyboard?.instantiateViewController(withIdentifier: "Storyboard ID") as?

                                "값을 전달받을 Controller 이름" else {

            return

        }

        

        vc.저장할 변수 = 전달할 값

        

        self.present(vc, animated: true)

 

2. 내비게이션 컨트롤러를 통해 화면 전환하면서 값을 전달

    - Navigation Item Button의 Action에 코드 추가

 

        guard let vc = self.storyboard?.instantiateViewController(withIdentifier: "Storyboard ID") as?

                                "값을 전달받을 Controller 이름" else {

            return

        }

        

        vc.저장할 변수 = 전달할 값

        

        self.navigationController?.pushViewController(vc, animated: true)

 

3. 세그웨이를 이용하여 화면 전환하면서 값을 전달

    - 버튼 or Navigation Item Button의 Action에 코드 추가

 

        self.performSegue(withIdentifier: "세그웨이 이름", sender: self)

 

 

    - performSegue 실행되기전에 동작하는 prepare function에 전달할 값을 저장

 

     override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

        let dest = segue.destination

        guard let vc = dest as? "값을 전달받을 Controller 이름" else {

            return

        }

        

        vc.저장할 변수 = 전달할 값

     }

 

B Controller -> A Controller로 데이터 전달

1. 직접 값을 전달

 

2. 저장소를 이용하여 값을 전달

    - AppDelegate 객체를 사용하여 값을 주고받기

 

    - UserDefaults 객체를 사용하여 값을 주고받기

 

출처 : 꼼꼼한 재은 씨의 Swift:기본편. Chapter 5. 다른 뷰 컨트롤러와 데이터 주고받기

'iOS' 카테고리의 다른 글

EUC-KR / CP949 문자열 처리 in swift  (0) 2019.05.14
Pushing Updates to Your App Silently  (0) 2019.04.24
AppDelegate  (0) 2019.03.20
사진 가져오기  (0) 2019.03.20
액티비티 뷰 컨트롤러  (0) 2019.03.13