【iOS】 화면 천이의 기초 【Swift3.0】
이 기사에서 이해할 수 있는 일
present 메소드에 의한 전이
1. 프로젝트 만들기
우선은, 「Single View Application」을 템플리에 프로젝트를 신규 작성합니다. 스토리보드에서 그림과 같이 각 ViewController에 버튼을 배치합니다. instantiateViewController에 대비하여 전환 대상 화면 (배경이 노란색 화면)에 스토리 보드 ID를 할당합니다. 이 예에서는 nextView로했습니다.

2. 화면 전환의 기능 만들기
화면 천이의 액션으로서 goNext()를 다음과 같이 구현합니다. 뒤로 액션용의 goBack() 는 하늘 구현으로 괜찮습니다만, 파라미터는 UIStoryboardSegue 형의 인수를 갖게 할 필요가 있습니다. present가 화면 천이를 행하는 UIViewController의 인스턴스 메소드입니다.
ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBAction func goBack(_ segue:UIStoryboardSegue) {}
@IBAction func goNext(_ sender:UIButton) {
let next = storyboard!.instantiateViewController(withIdentifier: "nextView")
self.present(next,animated: true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
3. 스토리 보드의 부품 및 소스 연결
back 버튼은 control을 누르면서 상단의 Exit 아이콘에 드롭하고 goBack을 선택합니다. 이것만으로 돌아가기 버튼의 구현은 완료입니다. goBack() 은 전이원의 ViewController 클래스에 준비하는 것에 주의해 주세요.

4. 빌드하고 확인
기본값은 아래에서 넉넉하게 나오는 애니메이션입니다.

performSegue 메소드에 의한 전이
5. 세구에의 작성
이번에는 세구에의 전환을 확인해 보겠습니다. 첫 번째 화면에 버튼을 추가하고 ViewController 상단의 아이콘에서 전환 대상의 View 위로 control을 누르면서 드래그합니다. 세구에의 종류를 선택하는 팝업이 출현하므로 Show를 선택합니다.

두 화면 사이에 세구에 아이콘이 나타나므로 클릭하여 선택 상태로 설정하고 identifier를 설정합니다. 이번은 nextSegue입니다.

6. 세구에 천이의 액션 추가
import UIKit
class ViewController: UIViewController {
@IBAction func goBack(_ segue:UIStoryboardSegue) {}
@IBAction func goNext(_ sender:UIButton) {
let next = storyboard!.instantiateViewController(withIdentifier: "nextView")
self.present(next,animated: true, completion: nil)
}
// セグエ遷移用に追加 ↓↓↓
@IBAction func goNextBySegue(_ sender:UIButton) {
performSegue(withIdentifier: "nextSegue", sender: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
7. 스토리 보드의 부품과 소스 연결

빌드하고 동작시켜 보면, present 메소드에 의한 천이와 같은 거동인 것을 확인할 수 있습니다.
8. 내비게이션 컨트롤러를 꽂아 본다
이 상태에서 내비게이션 컨트롤러를 삽입해 봅니다. 스토리 보드에서 첫 번째 화면의 ViewController를 선택하고 메뉴에서 Editor → Embed In → Navigation Controller로 이동합니다.

소스는 변경하지 않고 빌드해 확인하면, 세구에에서의 천이시와 돌아오는 때의 애니메이션이 슬라이드가 되어 있는 것을 알 수 있다고 생각합니다. 반면 present 메서드에서의 전환은 내비게이션 컨트롤러의 영향을 받지 않습니다. 이 차이에 유의하십시오.

슬라이드 애니메이션은 정책에 따라 내비게이션 컨트롤러 부하(View 스택 관리 하)에서의 전환 시에만 사용할 수 있습니다.
Reference
이 문제에 관하여(【iOS】 화면 천이의 기초 【Swift3.0】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/fromage-blanc/items/b3cb0e7833a1d5659463텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)