약관에 대한 내용을 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 = """
개인정보 동의사항??
"""
}
'IOS application > Swift' 카테고리의 다른 글
17. currentFirstResponder (0) | 2021.05.24 |
---|---|
16. Normalization 정규화 - 규칙이 있는 String (0) | 2021.05.22 |
14. Color Literal (0) | 2021.05.19 |
13. When viewDidAppear and viewWillAppear are not called. (0) | 2021.05.18 |
12. 선배가 알려주는 팁 (0) | 2021.05.17 |