Ich habe eine Klasse mit dem Namen ‚MyWearablesViewController‘ in dem ich ein Protokoll alsDer Versuch, die Delegierten zu verstehen
writenprotocol MyWearablesViewControllerDelegate {
func myWearablesViewControllerDidFinishedChangingTracker(viewController: UIViewController)
}
ich eine globale Variablen wie
erstellt habenvar delegate: MyWearablesViewControllerDelegate?
und ich habe diese Methode verwendet mehrere Male in 'MyWearablesViewController' wie
self.delegate?.myWearablesViewControllerDidFinishedChangingTracker(self)
Jetzt möchte ich dies eine Met auslösen hod in meiner anderen Klasse mit dem Namen 'HomeViewController' wird die Klasse deklariert als
class HomeViewController: UIViewController, UITableViewDelegate, UITableViewDataSource,MyWearablesViewControllerDelegate
in meinem ViewWillAppear ich diesen Code
let myViewControllrer = MyWearablesViewController()
myViewControllrer.delegate = self
und implementiert seine Funktion als
func myWearablesViewControllerDidFinishedChangingTracker(viewController: UIViewController) {
// some code
}
Aber meine geschrieben haben Der Delegat wird nicht angerufen. Bitte führe mich, was fehlt mir?
Edit: 'HomeViewController' ist in einem TabBarController, der einen anderen ViewController mit dem Namen 'MoreViewController' enthält, der im Grunde ein TableView ist. 'MyWearablesViewController' wird gedrückt, wenn der Benutzer auf eine Zelle in 'MoreViewController'
Haben Sie präsentieren die 'MyWearablesViewController'? Wenn es nie präsentiert wird, wie kann die Delegate-Methode jemals aufgerufen werden? – Sweeper
@NDoc das war ein Typo Sorry dafür. – Byte
@Sweeper Ich schiebe es, und es wird für den Benutzer angezeigt, aber der Delegat wurde nicht aufgerufen. – Byte