Skip to content
Snippets Groups Projects
Select Git revision
  • 5e79cdcb44dd15ed8ec0154ae079533060e91100
  • main default protected
  • dev protected
  • hotfixes-oct-2022
  • refactor/avatar-cell
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1
  • 1.0.8
  • 1.0.7
  • 1.0.6
12 results

ProfileViewModel.swift

Blame
  • WebController.swift 1.78 KiB
    import UIKit
    import WebKit
    
    public final class WebScreen: UIViewController {
        lazy private(set) var webView = WebView()
    
        private var url: String!
    
        public init(url: String) {
            self.url = url
            super.init(nibName: nil, bundle: nil)
        }
    
        public required init?(coder: NSCoder) { nil }
    
        public override func viewDidLoad() {
            super.viewDidLoad()
            setupScreen()
        }
    
        private func setupScreen() {
            view.addSubview(webView)
            webView.snp.makeConstraints { $0.edges.equalToSuperview() }
    
            webView.webView.load(URLRequest(url: URL(string: url)!))
            webView.closeButton = UIBarButtonItem(title: "Close", style: .done, target: self,
                                                  action: #selector(didTappedClose))
        }
    
        @objc private func didTappedClose() {
            dismiss(animated: true)
        }
    }
    
    final class WebView: UIView {
    
        let webView = WKWebView()
        let navBar = UINavigationBar()
        var closeButton: UIBarButtonItem! {
            didSet { navBar.topItem?.leftBarButtonItem = closeButton }
        }
    
        init() {
            super.init(frame: .zero)
            setupLayout()
        }
    
        required init?(coder: NSCoder) { nil }
    
        private func setupLayout() {
            backgroundColor = .white
            navBar.items = [UINavigationItem(title: "")]
            addSubview(webView)
            addSubview(navBar)
    
            navBar.snp.makeConstraints { make -> Void in
                make.top.equalTo(safeAreaLayoutGuide)
                make.left.equalToSuperview()
                make.right.equalToSuperview()
            }
    
            webView.snp.makeConstraints { make -> Void in
                make.bottom.equalToSuperview()
                make.left.equalToSuperview()
                make.right.equalToSuperview()
                make.top.equalTo(navBar.snp.bottom)
            }
        }
    }