[iOS] Segue에 identifier 설정해서 버튼에 따른 화면전환 및 텍스트 출력
필그램
·2017. 9. 8. 06:34
화면간 이동을 컨트롤 하는것이 세그웨이(Segue)이다.
이 세그웨이를 위한 메소드는 prepare()이다.
이전 화면이동 블로그에 버튼 2개를 추가하고 '버튼1', '버튼2', '버튼3' 이라고 한다.
각 버튼과 연결된 화살표(segue)를 선택한뒤 왼쪽에 'identifier'에 btn1, btn2, btn3를 각각 입력한다. 이 identifier가 각 버튼을 누른것을 인식하는 확인문자 이다.
다음 두번째 화면은 내용을 출력할 label을 하나 추가한다.
두번째 화면의 레이블을 MyViewController.swift의 화면에 연결한다.
아래처럼 연결된 뒤, var text:String = "" 을 입력
이제, ViewController.swift 소스로 이동해서 맨아래에 prepare를 입력하고 메소드를 선택한다. 위에서 말한것 처럼 segue를 이동하는 메소드 이다.
메소드 안에 아래 소스 처럼 내용을 입력한다. newView는 출력될 화면을 말한다.
위 내용의 코드 입력 중간을 캡쳐한것이다.
다음, 2번째 파일 ViewDidLoad에서 myLabel.text = text 를 입력한다.
세그웨이에서 받은 텍스트를 출력하는 것이다.
아래는 결과물의 테스트 화면!
소스코드는 아래와 같다.
[ViewController.swift]
import UIKit
class ViewController: UIViewController {
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.
}
//추가
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let newView = segue.destination as! MyViewController
if(segue.identifier == "btn1") {
newView.text = "버튼1 눌러짐"
}
else if(segue.identifier == "btn2") {
newView.text = "버튼2 눌러짐"
}
else if(segue.identifier == "btn3") {
newView.text = "버튼3 눌러짐"
}
}
}
[MyViewController.swift]
import UIKit
class MyViewController: UIViewController {
//아래 추가
var text:String = ""
@IBOutlet weak var myLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
myLabel.text = text
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
'프로그래밍 > 모바일: iOS, Java, Android, Swift' 카테고리의 다른 글
[iOS] Watch 기본 2 : 레이블 및 버튼 위치 바꾸기 (0) | 2017.09.10 |
---|---|
[iOS] Watch 기본 1 - 스토리보드 그려보기 (0) | 2017.09.10 |
[iOS] 페이지 이동 Segui (0) | 2017.09.08 |
[iOS] Xcode에서 탭 페이지 만들기 (0) | 2017.09.08 |
스위프트(Swift) 정리 2 : 자료형 - 어레이 (Array) (0) | 2017.09.03 |