[Swift] 화면 마이그레이션 시 대상 화면으로 값 전달
입문
업데이트에서 수정된 응용 프로그램에는 유사한 기능의 화면 2개를 추가하는 필수 조건이 있지만'이건 솔직하게 2개의 화면을 만드는 것보다 원본을 판정하고 화면 항목을 전환하는 디스플레이가 오히려 똑똑하다'는 생각에서 출발하여 원본의 정보를 어떻게 이동 목적지에 전달할 것인가그곳에서 타당성 검증이 진행되었다.
개발 환경
터미널: MacBook Pro/MacOS10.14.5(Mojave)
Xcode:10.2.1
Swift:5
한 일
2개의 화면을 생성하여 소스 화면에서 대상 화면으로 값을 마이그레이션하는지 확인
(받은 값을 기반으로 디스플레이 전환, 검증 필요 없으므로 객체에 속하지 않음)
구현 샘플 소스
화면 이미지 ※ 화면은 스토리보드로 제작
소스 마이그레이션
목표
MotoViewController.소스 화면 변환
import UIKit
class MotoViewController: UIViewController {
// 受け渡す値の入力エリア
@IBOutlet weak var txtPassString: UITextField!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
// 「遷移先画面へ」ボタン押下時
@IBAction func transition(_ sender: Any) {
let storyboard = self.storyboard
// 遷移先画面
let sakiView = storyboard!.instantiateViewController(withIdentifier: "saki") as! SakiViewController
// 遷移先画面の項目へ受け渡す値をセット
sakiView.passedString = txtPassString.text!
// 画面遷移
self.present(sakiView, animated: true, completion: nil)
}
}
SakiViewController.대상 화면 변환import UIKit
class SakiViewController: UIViewController {
@IBOutlet weak var txtPassedString: UITextField!
var passedString: String?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
if (passedString != nil) {
txtPassedString.text = passedString
}
}
}
코드의 양이 생각보다 적다.하지만 마이그레이션 대상 화면의 Storyboard ID를 잊지 마십시오.(아래 이미지 참조)
화면 예
GIF의 작업 이미지입니다.
파란색 화면(이동 소스)에 "test"를 입력하면 노란색 화면(이동 목적지)으로 전달되어 화면 중앙에 표시됩니다.
※ GIF 제작 앱에서 동작 인상을 볼 때 눈치채지 못했지만 화면이 이동할 때 화면이 깜박거립니다.
못생겨서 못 참겠어요.
참고로 하는 사이트 등
카드 통신 - [Swift/iOS] 화면 이동 시 값 전달
https://capibara1969.com/1060/#toc10
Reference
이 문제에 관하여([Swift] 화면 마이그레이션 시 대상 화면으로 값 전달), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ydzum1123/items/bec33dec1196b4e0cb01텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)