В приведенном ниже коде у меня есть ViewController
("SenderViewController"), который передает сообщение основному ViewController
при нажатии кнопки. Чего я не совсем понимаю, так это того, как метод messageData()
в основном ViewController
узнает, когда слушать сообщение.
Может кто-нибудь объяснить мне, что вызывает метод messageData()
в основном ViewController
?
Сендервиевконтроллер:
import UIKit
protocol SenderViewControllerDelegate {
func messageData(data: AnyObject)
}
class SenderViewController: UIViewController {
@IBOutlet weak var inputMessage: UITextField!
var delegate: SenderViewControllerDelegate?
@IBAction func sendData(sender: AnyObject) {
/
if inputMessage.text != ""{
self.presentingViewController!.dismissViewControllerAnimated(true, completion: nil)
self.delegate?.messageData(inputMessage.text!)
}
}
}
Основной ViewController:
import UIKit
class ViewController: UIViewController, SenderViewControllerDelegate{
@IBOutlet weak var showData: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func goToView(sender: AnyObject) {
let pvc = storyboard?.instantiateViewControllerWithIdentifier("senderViewController") as! SenderViewController
pvc.delegate = self
self.presentViewController(pvc, animated:true, completion:nil)
}
// What triggers this method, how it know when to listen?
func messageData(data: AnyObject) {
self.showData.text = "\(data)"
}
}
Большое спасибо!
self.delegate?.messageData
изfunc sendData
вSenderViewController
выполняет его. - person iphonic   schedule 02.08.2016