// // TestGuardVC.swift // Example // // Created by xaoxuu on 2019/8/12. // Copyright © 2019 Titan Studio. All rights reserved. // import UIKit import ProHUD import Inspire class TestGuardVC: BaseListVC { override func viewDidLoad() { super.viewDidLoad() vm.addSection(title: "") { (sec) in // MARK: 场景:删除菜单 sec.addRow(title: "场景:删除菜单") { Guard.push("del") { (vc) in vc.update { (vm) in vm.add(action: .destructive, title: "删除") { [weak vc] in Alert.push(scene: .delete) { (vc) in vc.update { (vm) in vm.add(action: .destructive, title: "删除") { [weak vc] in vc?.pop() } vm.add(action: .cancel, title: "取消", handler: nil) } } vc?.pop() } vm.add(action: .cancel, title: "取消", handler: nil) } } } // MARK: 场景:升级至专业版 sec.addRow(title: "场景:升级至专业版") { // 可以通过id来避免重复 Guard.push("pro") { (vc) in vc.identifier = "pro" vc.update { (vm) in vm.add(title: "升级至专业版") vm.add(subTitle: "解锁功能") vm.add(message: "功能1功能2...") vm.add(subTitle: "价格") vm.add(message: "只需一次性付费$2999即可永久享用。") vm.add(message: "只需一次性付费$2999即可永久享用。") vm.add(action: .destructive, title: "购买") { [weak vc] in Alert.push(scene: .buy) { (vc) in vc.identifier = "confirm" vc.update { (vm) in vm.add(action: .destructive, title: "购买") { [weak vc] in vc?.update({ (vm) in vm.scene = .loading vm.title = "正在付款" vm.message = "请稍等片刻" vm.remove(action: 0, 1) }) vc?.startRotate() DispatchQueue.main.asyncAfter(deadline: .now()+1) { vc?.update({ (vm) in vm.scene = .success vm.title = "购买成功" vm.message = "感谢您的支持" vm.add(action: .default, title: "我知道了") { vc?.pop() } }) } } vm.add(action: .cancel, title: "取消", handler: nil) } } vc?.pop() } vm.add(action: .cancel, title: "取消", handler: nil) } } } // MARK: 场景:隐私协议页面 sec.addRow(title: "场景:隐私协议页面") { Guard.push("license") { (vc) in vc.isFullScreen = true vc.update { (vm) in let titleLabel = vm.add(title: "隐私协议") titleLabel.snp.makeConstraints { (mk) in mk.height.equalTo(44) } let tv = UITextView() tv.backgroundColor = .white tv.isEditable = false vc.textStack.addArrangedSubview(tv) tv.text = "这里可以插入一个webView" vm.add(message: "请认真阅读以上内容,当您阅读完毕并同意协议内容时点击接受按钮。") vm.add(action: .default, title: "接受") { [weak vc] in vc?.pop() } } } } // MARK: 对比:原生的ActionSheet sec.addRow(title: "对比:原生的ActionSheet") { let ac = UIAlertController(title: "Title", message: "message", preferredStyle: .actionSheet) let ok = UIAlertAction(title: "OK", style: .default, handler: nil) let cancel = UIAlertAction(title: "Cancel", style: .cancel, handler: nil) ac.addAction(ok) ac.addAction(cancel) ac.popoverPresentationController?.sourceView = self.view self.present(ac, animated: true, completion: nil) } // MARK: 对比:原生Present效果 sec.addRow(title: "对比:原生Present效果") { let vc = UIViewController() vc.view.backgroundColor = .white vc.title = "ceshi" self.present(vc, animated: true, completion: nil) } } } }