Tôi đang phát triển một ứng dụng cho iPad Pro. Trong ứng dụng này, containerView
sử dụng để thêm views
bổ sung và tương tác với chúng.Ủy quyền sử dụng Chế độ xem vùng chứa trong Swift
Trước tiên, tôi đã tạo ra một giao thức:
protocol DataViewDelegate {
func setTouch(touch: Bool)
}
Sau đó, tôi tạo ra bộ điều khiển của tôi đầu tiên xem
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!"
}
}
}
Và cuối cùng, tôi đã tạo một cái nhìn sẽ được nhúng trong containerView.
import UIKit
class ContainerViewController: UIViewController {
var dataViewDelegate: DataViewDelegate?
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func touchMe(sender: AnyObject) {
dataViewDelegate?. setTouch(true)
}
}
Nhưng đối với một số lý do, không có gì xảy ra, bộ điều khiển xem đầu tiên nhận được gì trong chức năng setTouch.
Câu hỏi của tôi là: Trong trường hợp này, sử dụng vùng chứa, làm thế nào tôi có thể tạo liên lạc giữa hai ViewsControllers?
Để giao tiếp giữa các bộ điều khiển xem bạn có thể sử dụng ủy nhiệm, như bạn đang làm. Tuy nhiên, bạn nên đọc hướng dẫn lập trình UIViewController của apple https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/DesignTips.html để có các phương pháp hay nhất, đặc biệt là phần có tiêu đề "Đặt từng bộ điều khiển xem một hòn đảo". – beyowulf