随堂笔记

22 阅读1分钟
swift
import UIKit

class ViewController: UIViewController, UITextViewDelegate {

  @IBOutlet weak var textView: UITextView!
  @IBOutlet weak var wordCountLabel: UILabel!
  
  let maxLength = 100

  override func viewDidLoad() {
    super.viewDidLoad()
    textView.delegate = self
  }

  func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    
    let currentText = textView.text as NSString
    let currentLength = currentText.length
    let newLength = currentText.replacingCharacters(in: range, with: text).count
    
    if newLength > maxLength {
      return false
    } else {
      wordCountLabel.text = "(newLength)/(maxLength)"
      return true
    }

  }

}

页面传值

class FirstViewController: UIViewController {

  override func viewDidLoad() {
    super.viewDidLoad()
    
    let secondVC = SecondViewController()
    secondVC.nameCallback = { [weak self] name in
      guard let self = self else { return }
      self.getname(name: name)
    }
    
    secondVC.passName(name: "John")
  }

  func getname(name: String) {
    print("Get name from SecondVC: (name)") 
  }

}
class SecondViewController: UIViewController {

  var nameCallback: ((String) -> Void)?
  
  func passName(name: String) {
    print("Pass name to FirstVC: (name)")
    nameCallback?(name)
  }

}