TIL 210319

Steven kim·2021년 3월 20일
0

TodayILeard

목록 보기
8/8
post-thumbnail

✏️학습내용

코드로 화면 전환 구현 했을 시 데이터 보내기

ViewController → StockAddViewController

guard let svc = self.storyboard?.instantiateViewController(withIdentifier: "StockAdd") 
								as? StockAddViewController else { return }

svc.modalTransitionStyle = UIModalTransitionStyle.coverVertical

svc.juiceMachine = self.juiceMachine

self.present(svc, animated: true, completion: nil)
  • 데이터를 보내려고 하는 뷰 컨트롤러를 선언(svc)
    • 보내려고 하는 뷰 컨트롤러 클래스로 케스팅 해주는 것이 좋음 (as? StockAddViewController)
  • 데이터를 보내려고 하는 뷰 컨트롤러 안에 있는 프로퍼티에 값 대입(svc.juiceMachine)

Segue로 화면 전환 구현 했을 시 데이터 보내기

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let destination = segue.destination
    guard let svc = destination as? StockAddViewController else { return }
    svc.juiceMachine = self.juiceMachine
}
  • seque로 화면 전환 되기 전에 prepare 함수가 호출 됨.
  • seque.destination 의 타입은 viewController
  • 목적지 뷰 컨트롤러로 타입 케스팅 해줌(as? StockAddViewController)
  • 목적지 뷰 컨트롤러의 프로퍼티에 데이터 대입

🤔문제점 / 고민한 점

다양한 화면 전환시 이전 뷰 컨트롤러와 다음 뷰 컨트롤러 생명주기 파악하기

활동 학습 때 화면 전환시 이전 뷰 컨트롤러의 Disappear 함수들이 호출 되었는데.. 안됨..

여러 캠퍼들에게 물어봄. → 해결 못함.. → 야곰에게 물어봄!

  • seque의 kind > present Modally
  • Presentation > Full Screen 으로 설정

설정 후 재실행

성공!!

화면 전환의 효과와 설정에 따라서 작동하는 것이 다름 → 이후 공부해 봐야 함.

화면 전환시 [Storyboard] Unknown class Stco in Interface Builder file. 에러

2021-03-20 19:57:09.305260+0900 JuiceMaker[3107:49401] 
[Storyboard] Unknown class Stco in Interface Builder file.
  • 화면 전환시 계속 이런 에러가 떴음.

https://points.tistory.com/10

  • 위 블로그를 봤는데도 문제를 찾지 못함. (뷰 컨트롤러가 잘 연결 되어 있었음)

https://www.youtube.com/watch?v=lOg0zjNMmY4

  • 이 영상 보고 스토리보드를 소스코드로 오픈함. → 그래서 Stco 를 찾아봄.
  • 뷰컨트롤러 안에서 뷰의 custom class 가 Stco 로 되어 있었음.. → 삭제

😃해결방법

  • 야곰 짱!

📚참고자료

profile
기록과 정리

0개의 댓글