Я разрабатываю приложение для iPad Pro. В этом приложении containerView
используйте для добавления дополнительных views
и взаимодействуйте с ними.Делегат с использованием Container View в Swift
Во-первых, я создал протокол:
protocol DataViewDelegate {
func setTouch(touch: Bool)
}
Затем я создал свой первый контроллер представления
import UIKit
class ViewController: UIViewController, DataViewDelegate {
@IBOutlet var container: UIView!
@IBOutlet var labelText: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
}
func setTouch(touch: Bool) {
if touch == true {
labelText.text = "Touch!"
}
}
}
И, наконец, я создал представление который будет встроен в контейнерView.
import UIKit
class ContainerViewController: UIViewController {
var dataViewDelegate: DataViewDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func touchMe(sender: AnyObject) {
dataViewDelegate?. setTouch(true)
}
}
Но по какой-то причине, ничего не произошло, то первый контроллер представления не получает ничего setTouch функции.
Мой вопрос: В этом случае, используя контейнер, как я могу сделать обмен данными между двумя режимами ViewsControllers?
Для связи между контроллерами зрения вы можете использовать делегирование, как вы делаете. Тем не менее, вы должны прочитать руководство по программированию UIViewController для Apple https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/DesignTips.html для передового опыта, в частности раздела «Сделать каждый контроллер просмотра на острове». – beyowulf