swiftui 를 하다보면 데이터를 탭간 이동할 때가 있다. 그럴 때
@EnvironmentObject 프로퍼티 래퍼를 사용하는데....
탭을 사용하는 앱에서 위와 같은 에러가 뜬다면... 다음 내용을 확인해보자!!
탭뷰에 enviromentObject(**ObservableObject 할 클래스) 를 꼭 인스턴스 시키자.
나 같은 경우 위에 myPage 에서 VinoModel() 에 있는 값을 가져오려고 했는데 ....
"Thread 1:Fatal error: No ObservableObject of type" 와 같은 에러로 고생했다.
폭풍 구글링과 코드를 하나씩 생각하면서 다시 바라보니...
myPage().environmentObject(VinoModel()) 라고 값을 넘겨줘야한다!!
2시간 동안 모든 코드를 다봤는데... 이 글을 보는 분들께 도움이 되었으면 한다.
수정!!
위와 같이 하면 에러는 해결되나...
VinoModel() 가 두번 인스턴스를 시켜 탭간 데이터 이동이 안된다. 이를 해결하려면!!
탭간의VinoModel() 을 없애버리고...!
탭 상단의 뷰에 .environmentObject(VinoModel()) 를 추가해야한다.
나 같은 경우 탭을 포함하는 메인 화면이 VinoApp 이었는데, 여기에 추가시키면 탭 간 데이터 전송이 된다!!!!!
'IT > Swift5' 카테고리의 다른 글
[swiftui] 네비게이션 뷰에 액션추가하기 (0) | 2021.08.13 |
---|---|
[swift] Errors were encountered while preparing your device for development. Please check the Devices and Simulators Window. 해결책 (0) | 2021.08.13 |
[swiftui] print 입력하고 싶을 때!! (0) | 2021.08.11 |
[swift 오류] thread 1: "CALayer position contains NaN: (0) | 2021.08.09 |
'Cannot preview in this file -- active scheme does not build this file.' 에러 (0) | 2021.07.25 |