Lasst uns mehr über Logiken von Delegierten sprechen. Wie ich auf der vorherigen Frage geantwortet habe, ist es hier sinnlos, Delegierte zu verwenden. Aber, nur um zu klären. Protokoll - ist eine Reihe von Regeln zu tun. Delegierter - etwas gesendet oder autorisiert, andere zu vertreten. In Ihrem Beispiel tun Sie also ContainerViewController.delegate = self
, was in vielerlei Hinsicht falsch ist. Zuallererst setzen Sie nicht den Delegaten der ganzen Klasse, sondern den Delegierten einer Instanz einer Klasse. in Ihrem Fall container.delegate = self
in ViewController
Klasse viewDidLoad
Methode. Hier legen Sie fest, dass dieser Controller für die Methoden verantwortlich ist, die für das, was als Delegat festgelegt wird, implementiert werden sollen. Abonnieren Sie dann Ihren ViewController für das Protokoll, damit die Regeln erfüllt werden. Und der Hauptteil - legen Sie ein Protokoll fest. Es wird so etwas wie -
import UIKit
// set your protocol and it's functions
protocol ProtocolNameDelegate {
func yourMethodName(yourMethodParameters-optional)
}
class ViewController: UIViewController, ProtocolNameDelegate {
@IBOutlet weak var container: UIView!
@IBAction func touchMe(_ sender: Any) {
// call your implementation of protocol function
yourMethodName()
}
override func viewDidLoad() {
super.viewDidLoad()
// set delegate of container to get triggered to run implementation of it's method, when it is called from container.
container.delegate = self
}
// here you implement your delegate method
func yourMethodName() {
// your method implementation
}
}
und in der zweiten Klasse -
import UIKit
class ContainerViewController: UIViewController{
@IBOutlet weak var labelText: UILabel!
// here you say your class has a delegate, and it is optional
var delegate: ProtocolNameDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
func methodName() {
// here you trigger something to be implemented where you need it, in your case in your ViewController class
delegate?.yourMethodName()
}
}
Wenn Sie mehr Fragen haben, öffnen Sie keine Anleitung, die Delegierten, oder Sie können mich
eine E-Mail