2017-09-09 1 views
0

Ich habe eine .xib-Datei für eine Ansicht erstellt, die sich in meiner iOS-App, in der sich eine UIButton befindet, wiederholt.Verknüpfen einer @IBAction mit einer Schaltfläche in einer .xib-Ansicht von einem ViewController

Ich habe diese .xib Ansicht in mehrere UIViewControllers in meinem Storyboard aufgenommen. Ich möchte eine @IBAction und ein @IBOutlet mit der Schaltfläche in meiner .xib-Ansicht verknüpfen, die für jeden UIViewController spezifisch ist. Mit anderen Worten, ich möchte, dass jeder UIViewController den UIButton innerhalb der .xib-Ansicht vollständig verwaltet und handhabt.

Irgendeine Idee, wenn das oben genannte machbar ist?

Antwort

0

Es gibt ein paar Möglichkeiten zu tun, was Sie wollen.

Die Art, wie ich es tun würde, ist Ihre benutzerdefinierte Ansicht eine Schließung geben, die ausgeführt wird, wenn die IBAction-Methode ausgelöst wird. Und jeder Ansichtscontroller, der die Ansicht von der XIB lädt, kann die Schließung an die Ansicht übergeben, und die Aktion wird ausgeführt, wenn auf die Schaltfläche geklickt wird.

+0

Vielen Dank für Ihre Antwort Abizern ! Könnten Sie bitte ein wenig mehr ausarbeiten und vielleicht ein Beispiel geben, das Ihre Lösung unterstützt? –

0

Also hier ist die beste Lösung, die ich bisher gefunden habe.

  1. In meiner .xib verknüpfe ich die Schaltfläche mit einer @IBAction, die leer ist.
  2. wieder in meinem .xib, habe ich ein Protokoll mit einer einzigen Methode, die ich in der @IBAction in Schritt (1.)
  3. Die @IBAction erstellt nennen wird das Protokoll Methode bei jedem Aufruf ausgeführt wird, so Jedes Mal, wenn auf die Schaltfläche geklickt wird.
  4. das Protokoll Stub in jedem Viewcontroller implementieren, die die @IBAction verarbeiten muss, und stellen Sie sicher, dass die Viewcontroller zum .xib des in Schritt erstellten Protokoll zu verknüpfen (2.)
Verwandte Themen