iPad Pro için bir uygulama geliştiriyorum. Bu uygulamada, views
ek eklemek ve onlarla etkileşime girmek için containerView
kullanın.Delta uygulamasını Kapsayıcı Görünümü'nü kullanarak Swift uygulamasında
Birincisi, bir protokol oluşturdu: Ben ilk görünüm denetleyicisi
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!"
}
}
}
Ve nihayet yarattı, sonra
protocol DataViewDelegate {
func setTouch(touch: Bool)
}
, Genişletilmiş sayfanın yarattı containerView içine gömülecek.
Ama nedense
import UIKit
class ContainerViewController: UIViewController {
var dataViewDelegate: DataViewDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func touchMe(sender: AnyObject) {
dataViewDelegate?. setTouch(true)
}
}, hiçbir şey ilk görünüm denetleyicisi setTouch fonksiyonunda hiçbir şey alır oldu.
Soruma soru: Bu durumda, kapsayıcı kullanarak, iki ViewControllers arasındaki iletişimi nasıl yapabilirim?
yaptığınızı gibi, heyet kullanabilirsiniz görünümü denetleyicileri arasında iletişim kurmak için. Ancak, en iyi uygulamalar için Apple'ın UIViewController programlama kılavuzunu https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/DesignTips.html, özellikle de "Her Bir Görünüm Denetleyicisini Ada Yapın" başlıklı bölümü okuyun. – beyowulf