안녕하세요.
김과자 입니다.
전편에 이어서 오늘은 스토리보드 id 를 사용하여 화면을 호출해 보겠습니다.
2021.11.09 - [HELLO_WORLD/애플_IOS] - IOS 다양한 화면 이동(컨트롤)방법 - Segue와 ViewController 사용
우선 버튼과 함수를 연결하겠습니다.
버튼에 대고 소스코드로 오른쪽버튼으로 쭈우욱~ 드래그 하고 만들면 됩니다.
자 이렇게 잘 연결되었죠. 내부 코드는 아래와 같이 작성합니다.
//2.스토리 보드 id를 통한 호출
@IBAction func onStoryBoardCall(_ sender: Any) {
let storyBoard = self.storyboard!
let secondController = storyBoard.instantiateViewController(withIdentifier: "storyBoard1") as! StoryBoardCallViewController
secondController.delegate = self
self.present(secondController, animated: true, completion: nil)
}
storyBoard.instantiateViewController(withIdentifier: "storyBoard1")
이부분을 보시면 'storyBoard1' 이라는 id 를 넣어줬는데요. 이건 어떤값이랑 맵핑 되는것일까요?
자 이렇게 ViewController 하나 만들어 주겠습니다.
그리고 나서는 클래스도 만들어서 연결해주겠습니다. 그리고 StoryBoard ID값도 지정해 줍니다.
아래의 클래스도 작성하여 줍니다.
class StoryBoardCallViewController: UIViewController {
var delegate: UIViewController?
var sendData: Int = 0
override func viewWillAppear(_ animated: Bool) {
print("========\(sendData)========")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func viewWillDisappear(_ animated: Bool) {
if let _ = delegate{
(delegate as! ViewController).onReceiveMsg(msg: "받아라~")
}
}
}
자. 그럼 맨처음 소스코드를 다시 볼까요?
//2.스토리 보드 id를 통한 호출
@IBAction func onStoryBoardCall(_ sender: Any) {
let storyBoard = self.storyboard!
let secondController = storyBoard.instantiateViewController(withIdentifier: "storyBoard1") as! StoryBoardCallViewController
secondController.delegate = self
self.present(secondController, animated: true, completion: nil)
}
storyboard id 값을 주고 해당 ViewController를 가져온뒤 StoryBoardCallViewController로 캐스팅 합니다.
그리고 나서 값 전달을 위해 delegate를 설정합니다. 마지막으로 present하여 화면을 띄우게 됩니다.
그럼 값 전달은 어떻게 하냐구요?
secondController.sendData = 1
만들어 놓은 secondController의 변수에 필요한 값을 넣어주면 됩니다.
참 쉽죠?
콘솔에 값이 잘 찍히는걸 볼수 있습니다.
오늘은 이렇게 마무리 하겠습니다.
끝!
'개발 코딩 정보 공유 > 애플 iOS 스위프트 Xcode' 카테고리의 다른 글
파이어베이스를 이용한 IOS 테스트 배포 (0) | 2023.03.05 |
---|---|
IOS NavigationContorller를 활용한 화면 이동 방법 (0) | 2021.11.12 |
IOS Segue와 ViewController를 사용한 화면 전환 (0) | 2021.11.09 |
IOS 권한체크와 로직처리 (0) | 2021.11.08 |
알면 알수록 헷갈리는 IOS 환경 #2 - 앱 배포방식에 대해서 알아보자. (2) | 2020.10.02 |