IOS application/Swift
15. 이용약관 동의 페이지
개발자킹콩
2021. 5. 21. 14:39
약관에 대한 내용을 DatailType의 case분류를 통해 확장성을 높힌것 같아 자랑하고 싶어서 올린다.
이용약관 상세페이지를 보려면 페이지를 이동하게 된다.
각 페이지에 약관 데이터를 넣는 것은 같은 형식의 코드를 여러번 사용해서 비효율 적이다.
--> 약관동의에 대한 ViewModel로 데이터를 한번에 관리하고 어떤 case인지만 기재하면 된다.
--> 약관 명을 보고 동의하는 페이지와 약관 상세페이지에서 동의하는 페이지 모두 동의한 것을 동일하게 인지하게 위해 instance property 보다 type property로 이를 선언하는게 용이하다고 판단함.
정답은 아니겠지만 생각을하고 코드를 짠다는 점 칭찬해~~
class TermsOfServicesViewModel {
enum DetailType {
case first
case second
var detail: String {
switch self {
case .first:
return TermsOfServicesViewModel.firstDetail
case .second:
return TermsOfServicesViewModel.secondDetail
}
}
}
var type: DetailType = .first
func updateType(_ type: DetailType) {
self.type = type
}
// 약관 페이지에서 동의 했을때 true가 된다.
static var firstTermsOfServicesAgree: Bool = false
static var secondTermsOfServicesAgree: Bool = false
static let firstDetail: String = """
이용약관동의??
제1조(목적) 이 약관은 업체 회사의 샬라샬라~~
"""
static let secondDetail: String = """
개인정보 동의사항??
"""
}