We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
코디네이터 적용에 필요한 베이스들을 StackCoordinator라는 패키지로 분리했습니다. 의존성은 추가되어 있습니다.
enum HomeLink: LinkProtocol { case healthInfo case quiz(_ : Quiz, _ : BaseCoordinator<QuizLink>) func matchView() -> any View { switch self { case .healthInfo: return HealthInfoView() case .quiz(let quiz, let coordinator): return QuizBuilder( quiz: quiz, coordinator: coordinator ) } } }
LinkProtocol
path
matchView()
struct HomeBuilder: BuilderProtocol { var coordinator: BaseCoordinator<HomeLink> var body: some View { BaseBuilder(coordinator: coordinator) { HomeView( viewModel: HomeViewModel(coordinator: coordinator), predictVM: PredictionVM() ) } } }
BuilderProtocol
coordinator
BaseCoordinator
BaseBuilder
self.coordinator.path.append(HomeLink.healthInfo)
self.coordinator.sheet = HomeLink.healthInfo
NaviagtionStack이 루트에 선언되어 있기 때문에 하위뷰에서 다시 선언하면 오류가 발생합니다. (크래쉬 납니다) 따라서 절대로 NavigationStack을 재선언하지 마세요.
루트에서 path를 push하는게 아니라 하위에서 새로운 흐름을 생성해서 가져가는 방식도 있으면 좋을 것 같은데 아이디어가 아직 없네요. 좋은 생각 있으시면 알려주세요~~
아직 적용 안된 부분 (전체에 영향 없는 파트라 추후 설정하겠습니다)
그 외 적용 안된 뷰가 있거나 이슈가 있으면 말씀주세용
The text was updated successfully, but these errors were encountered:
No branches or pull requests
코디네이터 적용에 필요한 베이스들을 StackCoordinator라는 패키지로 분리했습니다.
의존성은 추가되어 있습니다.
사용법
1. LinkProtocol 구현
LinkProtocol
을 채택하는 열거형을 구현합니다.path
에 추가될 뷰 종류입니다.matchView()
를 구현해 다음 뷰를 지정해줍니다.2. BuilderProtocol구현
BuilderProtocol
를 채택하는 구조체를 구현합니다.BuilderProtocol
은coordinator
를 인자로 받아야합니다.BaseCoordinator
라는 패키지 제공 클래스를 통해 선언합니다.BaseBuilder
는 그대로 작성해주세요.BaseBuilder
클로저에 기존에 구현했던 뷰를 넣어주세요.3. 화면전환
3-1. 풀스크린모달
NaviagtionStack이 루트에 선언되어 있기 때문에 하위뷰에서 다시 선언하면 오류가 발생합니다. (크래쉬 납니다)
따라서 절대로 NavigationStack을 재선언하지 마세요.
아직 적용 안된 부분 (전체에 영향 없는 파트라 추후 설정하겠습니다)
The text was updated successfully, but these errors were encountered: