Endlich erfuhr ich von dem Delegierten und machte ein Memorandum.
Dies ist praktisch, wenn Sie kleine Teile wie Schaltflächen verwenden möchten, diese jedoch für jede Seite anders verarbeiten möchten.
Dieses Mal werde ich die Schaltflächen unten verwenden. Von links "Zurück", "Kommentar" und "Weiter". Ich möchte diese Schaltflächenklasse auf verschiedenen Seiten verwenden.
[Was du machen willst] Ich möchte die Tastendruckaktion für jede Seite umschalten. Wenn Sie die Zurück-Taste drücken, wechselt eine Seite zum vorherigen Bildschirm und eine andere Seite endet modal. Oder für andere Seiten möchte ich die Seite speichern, bevor ich die Seite schließe. etc
[Lösungen] Schreiben Sie die Aktion zum Drücken der Taste auf jede Seite. Der Designteil der Schaltfläche kann freigegeben werden, die Funktion des Aktionsteils wird jedoch an jede Seite delegiert. Dies ist die Rolle des Delegierten, was übersetzt "Übertragung" bedeutet.
[Weise]
FooterView.swift
protocol TapLeftButtonVCDelegate {
func tapLeftButton()
}
protocol TapCenterButtonVCDelegate {
func tapCenterButton()
}
protocol TapRightButtonVCDelegate {
func tapRightButton()
}
ViewController.swift
//Da ich auf dieser Seite nur die rechte Schaltfläche verwenden möchte, deklariere ich nur das Protokoll für die richtige Schaltfläche.
@IBOutlet weak var footerView: FooterView!
override func viewDidLoad() {
super.viewDidLoad()
footerView.tapRightButtonVCDelegate = self
}
extension ViewController: TapRightButtonVCDelegate {
func tapRightButton() {
//Fahren Sie mit dem nächsten Bildschirm fort, speichern Sie den Vorgang und schreiben Sie alles, was Sie möchten
}
}
class FooterView: UIView {
var tapRightButtonVCDelegate: TapRightButtonVCDelegate?
@IBAction func tapRightButton(_ sender: Any) {
tapRightButtonVCDelegate?.tapRightButton()
}
}
Jetzt können Sie die Schaltfläche auf verschiedenen Seiten wiederverwenden.
[Eindruck] So wurde der Delegat unter dem Gesichtspunkt der Verwendung verwendet. Es kann andere bequeme Möglichkeiten geben, es zu verwenden.
Recommended Posts