2017-04-13 2 views
1

In meinem Projekt habe ich einige Delegaten, die gut mit dem Zurückgeben von Daten funktioniert, aber ich möchte einige Subview hinzufügen oder irgendetwas in der Delegate-Methode auf der Empfängerseite geschieht nichts passieren, aber die andere Codes, die in der gleichen Methode sind, sind OK! Meine andere Frage ist auch auf Delegierte gerichtet: Dies geschieht für einige Delegierte. Der Delegierte antwortet nicht, aber ich fand eine sehr merkwürdige Lösung im Internet und ich muss wissen, warum das passiert und warum dieser Fix funktioniert!Delegat in Swift 3 führt keine Ansicht verwandten Codes

Mein erster Blick:

protocol SomeDelegate { 
    func someMethod() 
} 

class FirstViewClass { 
    //in init or didLoad method 
    var delegate: SomeDelegate? 

    // THIS DELEGATE WON'T WORK BUT WHEN I ADD THIS LINE IT WORKS FINE(IT STILL HAS THE ABOVE PROBLEM) 
    self.delegate = SecondViewClass() 

    //in some custom method 
    self.delegate?.someMethod(); 
} 

My Second Ausblick:

class SecondViewClass : SomeDelegate { 
    var firstView = FirstViewClass() 

    // this is in init or didLoad method 
    firstView.delegate = self 

    //this is in some custom method 
    someMethod() 
} 

Antwort

0

Ein einfacher Arbeits Prototyp:

protocol SomeDelegate { 
    func someMethod() 
} 

class FirstViewClass { 
    var delegate: SomeDelegate? 
} 

class SecondViewClass : SomeDelegate { 
    var firstView = FirstViewClass() 

    func someMethod() { 
     print("called via delegate") 
    } 
} 

var firstClass = FirstViewClass() 

var secondClass = SecondViewClass() 

firstClass.delegate = secondClass 

firstClass.delegate?.someMethod() 
Verwandte Themen