Tôi mới lập trình & Swift và tôi đang cố gắng hiểu cách truyền dữ liệu giữa hai bộ điều khiển chế độ xem (không phân biệt) với giao thức và đại biểu.Cố gắng hiểu giao thức/đại biểu trong Swift
Tôi có Bộ điều khiển chế độ xem (VIEW A) có một trường văn bản và nút. Khi người dùng nhấn nút đó, nó sẽ hiển thị văn bản đó trong nhãn trong một Trình điều khiển Chế độ xem khác (VIEW B).
Tôi không thể nhận nhãn để hiển thị văn bản - Tôi sẽ đánh giá cao giải thích về những gì cần thiết để thực hiện tác phẩm này.
Cảm ơn bạn rất nhiều!
import UIKit
protocol sendNameToViewB {
func showNameLabel(name:String)
}
class ViewA: UIViewController {
var delegate: sendNameToViewB?
@IBOutlet weak var textField: UITextField!
@IBAction func addButton(sender: AnyObject) {
delegate?.showNameLabel(textField.text)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
class ViewB: UIViewController, sendNameToViewB {
@IBOutlet weak var theLabel: UILabel!
func showNameLabel(name: String) {
theLabel.text = name
}
}
Cảm ơn sự giúp đỡ của bạn @drewag! –
Phương thức "trực tiếp" có tạo ra một thể hiện hoàn toàn mới của ViewControllerB không? Ngoài ra, tôi đã phải sử dụng 'var tabbarViewController: TabBarViewController = TabBarViewController()' thay vì cách bạn đặt nó không hoạt động (biến số vẫn là nil) –
@ByronCoetsee & OP, làm sao bạn có bất kỳ tài nguyên nào đi sâu hơn về phương pháp nào để theo đuổi? Khi nào cần khớp nối? vv Cảm ơn! –