일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- jdbc값검색
- 오라클데이터수정자바
- xcode #swift공부
- 이클립스에서sql자료넣기
- 이클립스커넥션아이디오류
- replaceall여러문자 #javareplaceall
- swift화면전환
- 자바정수변환
- 이클립스에서sql데이터삽입
- DATE데이터타입
- xcode #swift #ios앱만들기 #swift배열
- xcode 깃오류
- JDBCUPDATE
- 이클립스에서오라클데이터
- jdbcconnection_id오류
- 자바SQL
- jdbc
- xcode앱만들기 #swift #uikit
- 이클립스로오라클데이터출력
- jwt #세션 #토큰 #로그인유지 #java
- 이클립스에서오라클데이터수정
- JDBC데이터삽입
- JDBC수정
- 이클립스에서SQL
- JDBCinsert
- jdbc셀렉트
- jdbcselect
- xcode앱만들기 #xcode기초
- 자바SQLUPDATE
- xcode #swift #app만들기이미지 #ios앱만들기
- Today
- Total
Yim-HaEun
[Xcode,swift]화면 전환하기 / 프리젠트(Present) 방법 본문

메인 스토리보드에서 +를 눌러 view controller를 스토리보드 빈 공간에 드래그앤 드롭합니다.

새 화면이 생성되었습니다.
화면 전환은 몇가지 방식이 있습니다.
1. 프레젠트 (Present)화면 전환
기존 화면에 다른 화면을 덮어놓는 형태
2.추가된 뷰에 이름을 설정,
view controller버튼을 클릭해서 추가한 뷰를 선택 ->

3. 인스펙터 영역의 아이덴티티 인스펙터 클릭 ->
storyboardID항목에 VC2라고 입력

4.화면 전환을 위한 버튼 추가하기 (기본 뷰에 버튼 추가)


button이름은 화면전환이라고 설정해줄게요
5.보조편집기를 열고 버튼을 ViewController.swift에 ctrl키를 누른채로 연결,


instantiateViewController 메소드는 매개변수로 "VC2"라는 문자열을 받아와
해당이름의 스토리보드ID를 가지고있는 스토리보드 내용을 초기화, vc라는 상수에 할당합니다.
storyboard뒤의 ? -> 옵셔널 체인 , VC2라는 이름의 아이덴티티가 이 함수를 실행할 때는 존재하는지 알수 없기 때문에,
VC2가 존재하지 않는다면 nill을 vc 상수에 넣어주고 if문 안의 내용은 실행X
VC2는 위에서 새로 만든 스토리보드 ID값입니다. (스토리보드ID값과 매개변수 withIdentifier의 값을 일치시킴)
vc.modalTransitionStyle = UIModalTransitionStyle.coverVertical
할당받은 vc 인스턴스에서 modalTransitionStyle을 설정하는 구문(화면이 표현되는 방식)
**
UIModalTransitionStyle. 이라고 작성하면 선택 가능한 형태가 자동완성 기능에 의해 표시됨.
예시)
coverVertical : 새로운 화면이 아래에서 위로 기존 화면을 덮어쓰면서 올라옴
crossDissolve : 기존 화면이 흐릿해지고, 새로운 화면이 선명해지는 형태
flipHorizontal : 카드가 뒤집히는 듯한 효과로 화면이 뒤집히며, 새로운 화면 등장
self.present(vc, animated: true, completion : nil)
불러온 스토리보드(화면 내용)를 표시하는 구문
self의 present 메소드를 실행하여 화면에 vc내용을 표시
animated매개변수는 애니메이션 적용 여부이며, completion매개변수는 present가 종료된 후에 실행될 구문임.
completion은 특별히 실행할 내용이 없어서 nil을 전달함.
self.present라는 메소드는 추가된 뷰가 어떻게 화면에 표현될지 설정이 끝나고 나면 self가 추가 뷰를 화면에 표시하는 메소드를 실행함.
다시 되돌릴때도 이 동작이 중요하다.
추가된 뷰를 구분하기위해서 VC2라고 레이블을 추가해볼게요 .

아이폰은 뒤로가기 버튼이없기때문에 🤨 뒤로가기 기능을 따로 추가해줘야합니다.
다시 뒤로가기 버튼 추가,

클래스를 작성할 파일을 추가해줄게요




처음에 나오는 import구문을 지워주고 아래 코드를 작성할게요(import UIKit가 Foundation을 포함합니다.)

VC2 클래스 선언, VC2는 UIViewController 클래스를 상속받아 사용,
기존의 ViewController.swift와 동일한 구조.
이제 VC2.swift 파일과 스토리보드의 추가 뷰 스토리보드를 연결할게요
1.Main.storyboard를 클릭해서 스토리보드로 이동

2.
추가뷰 상단 컨트롤러 버튼을 클릭하여 추가 뷰의 컨트롤러 선택
인스펙터 영역의 아이덴티티 인스펙터로 이동 후 custom class 부분의 class 항목의 VC2 선택

이제 추가뷰의 보조 편집기를 열어서


ctrl을 누를채로 뒤로가기 버튼을 드래그앤 드롭해주고 이름은 clickBtnBack으로 설정해주기

self는 현재 열려있는 VC2인스턴스를 가리키고 presentingViewController에는
현재 이 뷰 컨트롤러를 present(표현)한 뷰 컨트롤러가 들어있음.
present에 의해 화면에 표시되지 않은 뷰컨트롤러라면, nil if문의 {}내용은 실행 X
vc.dismiss(animated: true, completion:nil)
표시되어있던 뷰 컨트롤러는 제거하는 구문
animated매개변수는 애니메이션의 적용 여부이며, completion 매개변수는 present가 종료된 후에 실행될 구문
animated속성이 true라면 현재의 뷰가 화면에 표시될 때의 애니메이션을 기억하고 있다가
사라질때는 반대로 표현.
(dismiss를 통해 coverVertical(아래에서 위로 올라오는 화면표현)을 반대로 다시 내림)
**
vc.dismiss
화면전환 버튼에서는 self.로 했는데 왜 여기서는 vc.라고 할까 ?
VC2는 자신의 화면에서 사라지는게 아니라,
자신을 화면에 표시해준 presentingViewController,(ViewController.swift)의 인스턴스인 vc에게 요청하는 것이라서
완성 !
😱
'xCode로 앱 만들기 > 연습' 카테고리의 다른 글
[Xcode, Swift] 테이블 뷰 사용법 (UITableView) (0) | 2024.09.08 |
---|---|
[Xcode,Swift] 기초 개념 공부 /배열,프로토콜,델리게이트패턴 (0) | 2024.09.07 |
[Xcode,swift] 텍스트필드(UITextField) 넣기 / Optional옵셔널 개념 (0) | 2024.09.06 |
[Xcode, Swift] 이미지 추가하기 / 이미지 뷰 사용법 (2) | 2024.09.06 |
[xcode,swift] 기초 개념 정리 1 (0) | 2024.09.06 |