์จ๋ณด๋ฉํ๋ก์ฐ์์ ์ค์ํ๋ ๋ถ๋ถ์ด ์ ์ ์๊ฒ ์จ๋ณด๋ฉ ๊ณผ์ ์ด ์ด๋์ ๋ ์งํ๋์๋์ง๋ฅผ ์๋ ค์ฃผ๋ progressview์ onboardingView๋ค์ด push๋๋ ๊ณผ์ ์์๋ ์์น๊ฐ ๋ณํ์ง์๋ button์ ํตํด ์ ์ ์๊ฒ ์จ๋ณด๋ฉ์ด ํ๋์ ํ๋ก์ฐ๋ผ๋๊ฑธ ์ธ์์์ผ์ฃผ๋ ๋ถ๋ถ์ด ๋งค์ฐ ์ค์ํ ๊ณผ์ ์์ต๋๋ค
์ฆ, ์์ ์ฃผ์ฐจ๋ฅผ ์ ์ ์๊ฒ ์ ๋ ฅ๋ฐ๋ ํ์ด์ง์์๋ ์์ผ๋ก ๊ฐ๋ฉด ํ๋ช ํ์ด์ง ๋ค๋ก๊ฐ๋ฉด ๋ก๊ทธ์ธํ์ด์ง๋ฅผ presentํด์ผํ๊ณ ํ๋ช ์ ์ ์ ์๊ฒ ์ ๋ ฅ๋ฐ๋ ํ์ด์ง๋ ์์ผ๋ก๊ฐ๋ฉด ์จ๋ณด๋ฉ์๋ฃํ์ด์ง ๋ค๋ก๊ฐ๋ฉด ์์ ์ฃผ์ฐจํ์ด์ง๋ฅผ presentํด์ผํฉ๋๋ค
enum OnboardingPageType: Int, CaseIterable {
case getPregnancy = 0
case getFetalNickname = 1
}
enum OnbardingFlowType: Int {
case toGetPregnacny
case toFetalNickname
case toLogin
case toCompleteOnboarding
}
extension OnboardingPageType {
var forward: OnbardingFlowType {
switch self {
case .getPregnancy:
return .toFetalNickname
case .getFetalNickname:
return .toCompleteOnboarding
}
}
var back: OnbardingFlowType {
switch self {
case .getPregnancy:
return .toLogin
case .getFetalNickname:
return .toGetPregnacny
}
}
}