일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 시뮬레이션
- IOS
- 삼성시험
- 완전탐색
- 후쿠오카 4박 5일
- 완전 탐색
- BFS
- 다이나믹 프로그래밍
- 플로이드
- brute force
- queue
- deque
- 너비 우선 탐색
- DP
- dfs
- 후쿠오카
- 알고리즘
- 큐
- 삼성테스트
- 삼성 SW 테스트
- 미로찾기
- 일본 여행
- 백준
- BOJ
- 플로이드 와샬
- 깊이 우선 탐색
- 후쿠오카 캐널시티
- 하카타역
- 후쿠오카 여행경비
- 후쿠오카 요도바시 하카타
- Today
- Total
맛있는감귤
[iOS : Swift] Segue 연결하는 3가지 방법 본문
세그웨이 연결 3가지 방법을 소개해드리겠습니다.
기준
XCode Ver : 8.2
Swift 3
가위바위보 앱에서 가위, 바위, 보를 각각 다른 방법으로 연결해보겠습니다.
1. 스토리보드에서 직접 연결하기
가장 쉬운 방법으로 control 키를 누른상태에서 버튼을 누르고 다음 view controller에 드래그 앤 드롭을 하면 액션 세그 창이 나오고 원하는 옵션을 선택하여 설정할 수 있습니다.
2. performSegue 메소드를 이용하여 연결하기 (storyboard + code)
이 방법은 첫 번째 view controller에서 두 번째 view controller를 연결한 뒤 생기는 세그웨이의 identifier를 설정해 주고 코드 상에서 설정해주는 방법입니다.
먼저 view controller 끼리 연결해 만든 세그웨이를 클릭한 후 Attributes inspector를 보면 위 이미지처럼 identifer를 설정해줄 수 있습니다.
저는 play라고 이름을 지어봤습니다.
그리고 코드상에서 prepare와 performSegue 메소드를 연결해 행동을 정의합니다.
- prepare
override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "play" { let vc = segue.destination as! ResultsViewController vc.userChoice = getUserShape(sender as! UIButton) }
}
- performSegue
@IBAction private func playPaper(_ sender: UIButton) { performSegue(withIdentifier: "play", sender: sender) }
prepare에서 destination(두번 째 view controller)를 설정해주고 보(paper) 버튼을 클릭했을 때를 performSegue가 실행되도록 정의합니다.
3. 코드로 정의하기
스토리보드를 이용하지 않고 코드상으로 연결하는 방법입니다.
@IBAction private func playRock(_ sender: UIButton) { let vc = self.storyboard?.instantiateViewController
(withIdentifier: "ResultsViewController") as! ResultsViewController
vc.userChoice = getUserShape(sender) present(vc, animated: true, completion: nil) }
withIdentifier의 "ResultsViewController" 부분은 두 번째 view controller의 identifer이고
그 뒤 ResultsViewController는 class이름입니다.
'iOS' 카테고리의 다른 글
[iOS : Swift] 테이블 뷰 셀 스타일 (0) | 2017.01.25 |
---|---|
[iOS : Swift] 딕셔너리로 테이블 뷰 만들기 (0) | 2017.01.25 |
[iOS : Swift] tableView index path 호출 과정 (0) | 2017.01.25 |
[iOS : XCode 8.2] 시뮬레이터 회전시 생기는 메시지 제거 (0) | 2017.01.19 |