Я новичок в программировании & Swift, и я пытаюсь понять, как передавать данные между двумя контроллерами представлений (без segue) с протоколами и делегатами.Попытка понять протокол/делегатов в Swift
У меня есть контроллер просмотра (VIEW A), в котором есть текстовое поле и кнопка. Когда пользователь нажимает на эту кнопку, он должен затем показывать этот текст в метке в другом контроллере просмотра (VIEW B).
Я не могу получить ярлык, чтобы показать текст - я был бы признателен за объяснение того, что требуется для выполнения этой работы.
Большое спасибо!
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
}
}
Спасибо за помощь @drewag! –
Будет ли «прямой» метод не создавать новый экземпляр ViewControllerB? Кроме того, мне пришлось использовать «var tabbarViewController: TabBarViewController = TabBarViewController()» вместо того, как вы его поместили, не работало (переменная осталась нулевой) –
@ByronCoetsee & OP, у вас есть какие-то ресурсы, которые будут углубляться в глубину какой метод преследовать? Когда требуется соединение? и т.д. Спасибо! –