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)
}
}