2017-04-21 2 views
0

Ich baue ein Framework. Ich muss die IBOutels-Liste von UIViewcontroller über Code abrufen. Ich habe InterfaceOutletsReadable Protokoll geschrieben. Wenn der Framework-Benutzer dieses Protokoll erfüllt, muss ich die Liste der IBOutlets von ViewController lesen.Wie man die IBOutlet-Liste des UIVIewControllers programmgesteuert erhält

protocol InterfaceOutletsReadable { 
    ///Read the outlets objects 
    func readOutlets() 
} 
extension InterfaceOutletsReadable { 
    //TODO:- Stuck at this stage. Here I have to read the viewcontroller IBOutlets 
} 
class HomeViewController: InterfaceOutletsReadable { 
    @IBOutlet weak var userNameTextField: UITextField! 
    @IBOutlet weak var passwordTextField: UITextField! 
    @IBOutlet weak var errorLabel: UILabel! 
} 

bearbeiten: Ich will nicht, um die Liste von IBOutlet Sammlung erhalten. Gibt es eine Möglichkeit, alle Verkaufsstellen programmatisch zu bekommen?

+0

Was ist das Problem? –

+0

@dahiya_boy Es ist ein Rahmenprojekt. Ich muss die Liste der Ausgänge von ViewController abrufen. Nicht durch IBOutlet collection.Wie bekommt man das? –

Antwort

1

können Sie IBOutletCollection von einem textField nehmen und mit allen anderen verbinden.Erhalten Array von Outlet und Sie können durch Index zugreifen.

0

@IBOutlets existieren nur zur Entwurfszeit, es gibt keine sogar zur Kompilierzeit. Es ist also unmöglich, alle Verkaufsstellen so zu führen, wie Sie es möchten. Ausgänge haben keinen Unterschied zu anderen Variablen.

Wenn Sie eine Liste der Steckdosen benötigen, können Sie in Ihrem HomeViewController und return Array aus beliebigen Variablen implementieren.

Verwandte Themen