iOS 에서 버튼을 클릭했을 때, 텍스트에 있는 내용을 다음 창으로 전달하는 간단한 모듈을 만들어 보고자 한다.
새로운 프로젝트를 만들기 위해 아래와 같이 뉴 프로젝트를 생성한다.▼
iOS Application 에서 싱글 뷰를 선택하고 다음으로 넘어간다.▼
프로젝트명을 적당한 이름을 기입해 준다. 여기서는 텍스트를 넘겨준다는 의미로 'HandingOver'라고 명명하였다.▼
프로젝트를 생성해줄 폴더를 찾아 'Create'를 눌러준다.▼
이렇게 생성된 프로젝트는 아래와 같은 창을 보여준다.▼
애플리케이션에서 보여지는 부분을 다루는 메인스토리리 보드를 선택하면 아래와 같은 화면이 나타난다. ▼
우측 아래에 있는 Objects에서 버튼을 찾고, 메인스토리 보드에 드랙해서 적당한 위치에 자리 잡아준다.▼
입력할 텍스트 창도 찾아서 드래그하여 위치 시킨다.▼
일견 어떤 작동을 하게 하는지 알게하기 위해, 텍스트를 조금 바꾸어 주었다. 아래 버튼을 클릭하면, 위의 텍스트 창에 있는 값을 다음 창으로 넘겨주는 간단한 작동을 구현하겠다는 의미이다.▼
위의 버튼을 클릭하였을 때 보여줄 두 번째 창인 'ViewController'를 찾아 드래그로 위치시킨다.▼
좌측에서 전달받은 텍스트값을 보여줄 'Label' 객체를 찾아 적당한 위치에 자리 잡아준다.▼
'Label'의 이름을 살짝 바꾸어 주었다.▼
두 번째 창을 제어할 Controller 파일을 만들기 위해 아래와 같이 새로운 파일을 만들게 한다.▼
Swift 파일을 선택해 준다.▼
두 번째 화면을 컨트롤 할 것이므로, 이름을 SecondViewController 이라고 명명하였다.▼
위와 같이 파일을 생성하게 하면, 아래와 같은 새로운 파일이 생성되고 그 내용을 확인할 수 있다.▼
위의 'SecondViewController' 도 첫 번째 'ViewController'와 유사한 기능을 하기에 'VeiwController'의 값을 그대로 복사한 후 수정할 부분은 고쳐주면 된다.▼
'SecondViewController'을 아래와 같이 코딩을 한다. viewDidLoad() 부분은 클래스가 호출 되었을 때 보여지는 부분을 기입하는 곳이다. ▼
두 번째 viewController 인 'SecondViewController' 의 identifier를 설정하기 위해 메인보드 스토리에서 두 번째 중앙 윗부분에 있는 세 개의 객체중 가장 왼쪽을 클릭해 준다. ▼
그런 연후에 오른쪽 상단에 있는 클래스에 'SecondViewController' 이라고 기입을 해준다.▼
두 번째 컨트롤러의 상단부 이름이 바뀌어 있는 것을 확인 할 수 있다.▼
이제 기본적인 것들은 대략 정리가 된듯 하다. 지금 부터는 뷰에서 보이는 부분을 어떻게 작동하게 할지 코드로 컨트롤 할 일만 남았다. 아래는 버튼을 클릭하면 두 번째 창을 보여주게 하기 위해 좌측의 버튼을 'control' 키를 누른 상태에서 드래그를 하면 아래와 같이 푸른색 줄이 생성된다. 이 선을 오른쪽으로 이어주고 놓으면 된다.▼
이렇게 연결을 하면 아래와 같은 창이 나오는데, 여기서 'show'를 찾아 클릭 해 준다. 왼쪽 버튼을 누르면 오른쪽을 보여주겠다는 의미이다.▼
위와 같은 과정을 거치면 두 개의 창 사이에 새로운 선이 하나 생성된다.▼
이번에는 두 번째 창에서 레이블을 'control' 키를 누른 상태에서 'SecondViewController'로 연결한다.▼
그러면 아래와 같은 창이 나오는데, 이름을 'receivedTextLabel' 로 명명을 해 주었다.▼
그러면 아래와 같이 코드에 추가가 된다.▼
receivedText 라고 하는 변수를 정의하고, 문자형을 할당해 준다. 이는 차후 코드를 통해서 그 값을 전달받을 때 사용될 예정이다. ▼
두 번째 창이 호출되면 receivedText 의 값을 receivedTextLabel 의 text 부분에 넣어 주라는 의미의 코드가 실행되게 한다. ▼
이번에는 첫 번째 창에서 텍스트 창을 'ViewController'와 연결시켜 준다.▼
이렇게 연결한 텍스트 필드의 이름을 'sendingTextField' 라고 명명하였다.▼
첫 번째 창에서 두 번째 창으로 넘어갈 때 실행되는 'prepareForSegue' 부분을 아래와 같이 정의하여 주었다.▼
override func prepareForSegue(
segue: UIStoryboardSegue, sender: AnyObject?) {
let DestViewController
: SecondViewController =
segue.destinationViewController as!
SecondViewController
DestViewController.receivedText =
sendingTextField.text!
}
여기까지 코딩을 완려하고 실행을 하면 아래와 같은 시뮬레이터 창이 나타난다.▼
텍스트 필드에 적당한 값을 기입하고, 아래의 버튼 부분을 클릭해준다.▼
버튼을 클릭하면 화면이 두 번째 화면으로 전환이 되면서 아래와 같은 텍스트가 표기된다.▼
스크린샷으로 상기와 같은 과정을 하나씩 찍고 진행하려고 하니, 여간 까다로운게 아닌것 같다. 왜 모두들 동영상으로 촬영을 하고 유튜브에 연결을 하는제 새삼 이해가 간다. 추후에는 동영상으로 제작을 해야 하나...... 고심이 되지만, 말빨이 안 따라주어 어떻게 해야할지 막막한 심정이다 -_-;;