[아이폰] - 뷰컨트롤러 데이터 이동(prepare)
○ 뷰컨트롤러 데이터 이동(prepare) |
--------------------------- 데이터 이동( present modally 를 사용 ) --------------------------- 1. viewController 를 MainStoryboard 에 잡아 땡긴다(2번째 화면 생성) 2. 2번쨰 화면에 연결한 viewController.swift 를 만든다. 파일 익스플로러에다가 오른쪽 마우스 - new file - Cocoa Touch Class Subclass 가 UIViewController 가 아니면 바꿔라 (상속받는거임) class 이름을 바꿔야된다 viewController는 있으니까 SecondViewController 3. Main.storyboard 이동해서 2번째 화면 누르고 상단 아이콘 3개중 첫번째 동그라미 누르고 4. 오른쪽 세번째 identity inspector (네모) 눌러서 만든 class 에서 SecondViewController 누른다 5. 이러면 연결 완료다 근데 Main.storyboard 에 화살표를 화면에 붙이면 그거부터 실행된다 (화살표는 뷰컨트롤러 누른 후 4번째 화살표 모양에서 title 밑에 is initial View Controller에 체크하면 된다) 6. 첫번째 화면의 버튼을 오른쪽 마우스로 두번째 화면에 가져다놓는다 그러면 액션에 present modal 누른다 (그러고 실행하면 이제 전환된다) 7. 뒤로 가기는 button action 줘서 dismiss(true, nil) 하면 된다 ---------------------------------------------------------------------------------------------------- [첫번쨰 화면] class ViewController: UIViewController { @IBOutlet weak var txtID: UITextField! @IBOutlet weak var txtName: UITextField! // 데이터 보내기 위한(새로 컨트롤러 만들면 밑에 뜨는거 가져와서 주석 지워서 사용) override func prepare(for segue: UIStoryboardSegue, sender: Any?) { let data : SecondViewController = segue.destination as! SecondViewController data.dataId = txtID.text! data.dataName = txtName.text! } } [두번째 화면] class SecondViewController: UIViewController { @IBOutlet weak var lblId: UILabel! @IBOutlet weak var lblName: UILabel! // 보내는 쪽에서 지정한 변수를 받는 쪽에서 생성해줘야한다 var dataId : String! var dataName : String! override func viewDidLoad() { lblId.text! = dataId lblName.text! = dataName super.viewDidLoad() } // 뒤로가기 버튼 시 dismiss(true, nil) 이거로 안하면 계속 데이터가 쌓임... @IBAction func backButtonClicked(_ sender: UIButton) { dismiss(animated: true, completion: nil) } } |
'아이폰' 카테고리의 다른 글
[아이폰] - 테이블뷰(TableView) (0) | 2018.12.24 |
---|---|
[아이폰] - 탭 바(Tab Bar) (0) | 2018.12.24 |
[아이폰] - 알림창 띄우기(AlertController) (0) | 2018.12.24 |
[아이폰] - 피커뷰(PickerView) 이미지 데이터 처리 (0) | 2018.12.24 |
[아이폰] - 피커뷰(PickerView) 데이터 처리 (0) | 2018.12.24 |