AgreementCellViewModel ile Sözleşme Bileşeni
Sözleşme bileşeni, kullanıcıların önemli sözleşmeleri görüntülemesi ve onaylaması için kullanışlı bir araçtır. AgreementCellViewModel kullanarak bu bileşeni entegre etmek oldukça basittir. Bu rehberde, AgreementCellViewModel ile nasıl özelleştirilebilir sözleşme bileşenleri oluşturacağınızı adım adım öğreneceksiniz.
let documentName = "Sözleşme Adı"
let agreementViewModel = AgreementCellViewModel()
agreementViewModel.boldText.append("Sözleşme Adı")
agreementViewModel.identifier = "identifier"
agreementViewModel.text = "Sözleşme Adı okudum, onaylıyorum."
agreementViewModel.contentType = WebContentType.HTML
agreementViewModel.content = "Sözleşme İçeriği"
agreementViewModel.agreementDelegate = self
agreementViewModel.appendValidation(type: UIConstants.Approve,
title: documentName)
agreementViewModel.backgroundColor = UIColor.whiteColor()
viewModels.append(agreementViewModel)
AgreementCellViewModel Özellikleri:
- identifier: Sözleşmeyi benzersiz hale getiren bir değerdir. Farklı sözleşmeleri tanımlamak için kullanışlıdır.
- text: Switch yanında görünen tam metni belirtir. Kullanıcıların anlayabileceği açık bir metin ekleyebilirsiniz.
- boldText: Bileşen içinde kalın görünmesini istediğiniz değerleri eklemek için kullanılır.
- appendValidation: Sözleşmenin onaylanmadan sayfanın gönderilmemesi için bileşene bir doğrulama ekler.
- contentType: Sözleşmenin türünü belirtir, HTML, PDF, TEXT gibi seçenekler vardır.
- content: İlgili bir içerik atanırsa, sözleşme içeriği doğrudan açılır. Aksi takdirde, içerik asenkron olarak alınır. UIKitManager.shared.getData methodu aracılığıyla Sözleşme İçeriği identifier ile asenkron olarak alınır ve İçerik ekranı açılır.
- backgroundColor: Bileşenin arka plan rengini belirler. Tasarımınıza uygun bir renk seçebilirsiniz.
Sözleşme bileşeni, kullanıcıların önemli sözleşmeleri görüntülemesini ve onaylamasını kolaylaştırır. AgreementDelegate’i kullanarak kullanıcıların onayını yakalayabilir ve ilgili iş kurallarını uygulayabilirsiniz.
UIKitManager.shared.showLoading()
UIKitManager.shared.getData(identifier: agreementViewModel.identifier) { resultModel in
UIKitManager.shared.hideLoading()
if !resultModel.isError {
self.agreementResult = resultModel
self.showAgreementViewController()
} else {
UIKitManager.shared.showErrorAlert(resultModel: resultModel)
}
}
Kullanıcının onay vermesi beklenir. Onay verdiğinde farklı bir aksiyon almak istiyorsak agreementDelegate değeri atanır ve ilgili method ile iş kuralı geliştirilir.
extension PhoneTutorialViewController : AgreementCellViewModelDelegate {
func didApprovedAgreement(viewModel: AgreementCellViewModel,
completion: @escaping (ResultModel) -> ()) {
// İlgili aksiyon yazılır
completion(ResultModel())
}
}