Ich habe einige Methoden in Second-View-Controller. Ich greife auf sie über Delegate - Inside Func ButtonSender. Hauptziel ist es, currentTitle einer Schaltfläche als Argument an eine viewController.addNewMessage zu übergeben. Was ist der beste Weg, dies zu tun?Wie kann ich die delegierte Methode in IBAction ausführen?
ChatViewController:
protocol ReactToButtons {
func buttonSender(viewController: MyChatViewController)
}
class MyChatViewController: ChatViewController{
var delegate: ReactToButtons?
override func viewDidLoad() {
super.viewDidLoad()
delegate!.buttonSender(self)
}
}
ContainerViewController:
class ContainerViewController: UIViewController, ReactToButtons {
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let myVC = segue.destinationViewController as! MyChatViewController
myVC.delegate = self
}
func buttonSender(viewController: MyChatViewController) {
viewController.addNewMessage(/*HERE GOES CURRENT TITLE*/)
}
@IBAction func leftButtonPressed(sender: AnyObject) {
let currentTitle = sender.currentTitle!
}
Sie schreiben könnte passen '@IBAction func leftButtonPressed (Sender: UIButton) {'um irgendwelche Knopfmethoden zu benutzen. – kennytm
Nun, das ist nicht der Fall. Ich habe einige Methoden in Second-View-Controller. Ich greife auf sie über Delegate - Inside Func ButtonSender. Hauptziel ist das Übergeben von currentTitle einer Schaltfläche als Argument an eine viewController.addNewMessage – loup4
können Sie die Delegate-Methodensignatur nicht ändern, um currentTitle ebenfalls einzuschließen? –